1,Android程序隐藏程序图标

在AndroidManifest中application节点下面intent-filter里面加入下面语句
<data
android:host="MainActivity"
android:scheme="com.zhangton.monitor" />
android:scheme后面的是包名。android:host是活动首页。这种隐藏的方式在手机应用中还可以找到。

2,android无界面app开机启动Service

对于一个没有Activity的app,直接安装后,开机是不会启动Service的;如果推送进system/app,则开机会启动。
为什么直接安装就不会呢?因为Android 3.1以后Boot_COMPLETED广播收不到。

在3.1之后,系统的package manager增加了对处于“stopped state”应用的管理,这个stopped和Activity生命周期中的stop状态是完全两码事,指的是安装后从来没有启动过和被用户手动强制停止的应用,与此同时系统增加了2个Flag:FLAG_INCLUDE_STOPPED_PACKAGES和FLAG_EXCLUDE_STOPPED_PACKAGES,来标识一个intent是否激活处于“stopped state”的应用。当2个Flag都不设置或者都进行设置的时候,采用的是FLAG_INCLUDE_STOPPED_PACKAGES的效果。

有了上面的新机制之后,google觉得给所有的广播intent默认加上FLAG_EXCLUDE_STOPPED_PACKAGES会非常的Cooooool,能在一定程度上避免流氓软件、病毒啊干坏事,还能提高效率,就导致了本文题目中说的问题,RECEIVE_BOOT_COMPLETED广播如果用户没有运行过应用,就不会响应了。

不过google还是留了点余地,允许应用和后台服务通过给广播intent设置FLAG_INCLUDE_STOPPED_PACKAGES来唤醒处于“stopped state”的程序,也就是用户自己写的广播intent可以控制这个机制,但是系统自带的广播intent,由于不能修改,就只能接受这个现实了。

解决方案:定制系统,修改framework,把系统发bootcompleteIntent的地方改一下,在intent里设上FLAG_EXCLUDE_STOPPED_PACKAGES,那样在这个系统里,你的APP就可以开机启动了.

3,如何获取MainActivity实例

传对象:

Java code ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class MainActivity extends Activity { …… public void anotherClass() { AnotherClassactivity= new AnotherClass( this ); } } public class AnotherClass { private MainActivityactivity; public AnotherClass(MainActivityactivity) { this .activity=activity; } }


传接口:
Java code ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public interface IActivity { //与Activity里同名同参数的方法声明 } public class MainActivity extends Activity implements IActivity { …… public void anotherClass() { AnotherClassactivity= new AnotherClass( this ); } } public class AnotherClass { private IActivityiActivity; public AnotherClass(IActivityiActivity) { this .iActivity=iActivity; } }
4, android4.0以上pad隐藏状态栏

1.将下面代码加到Activity的onCreate方法中setContenView()前面:

getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LOW_PROFILE);//4.0pad去掉隐藏状态栏

2.在onResume中加代码

getWindow().getDecorView().setSystemUiVisibility(
View.GONE);//4.0pad去掉隐藏状态栏

3.同时去掉AndroidManifest.xml中activity关于全屏的配置

更多相关文章

  1. 编译android文件系统4.0.4错误全部解析
  2. Android开机自启动程序
  3. Android(1.初识Android应用程序目录)
  4. Android 系统编译
  5. Android系统调试wifi总结

随机推荐

  1. 如何练习绘画?学画画练习技巧
  2. 如何画五官?动漫人物脸部五官画法
  3. pcfcms虚拟主机怎么设置?
  4. android 关于图片的放大,缩小,旋转功能的实
  5. android开启和关闭移动网络
  6. android的零星基础点(多媒体)之一
  7. Andorid Material Design TextInputLayou
  8. android下拉菜单spinner的使用方法
  9. android中设置一些没有maxHeight属性控件
  10. 获取android手机移动设备号