android 4.0怎样实现开机自启动服务没有activity
开机自启动很简单。 你是想做什么? 是不是想开机后,自动启动一个服务?然后在后台干一些别人不知道的事情?其实这很简单呀? 不过首先需要明确一点:没有Activity的Android程序,是启动不了滴,不过,你可以指定一个Activity,或者,指定一个桌面挂件呀,就是Widgets,知道吧? 那么,我们就有两种方法来实现你的功能: 第一,写一个很简单的程序,就一个Activity,指此Activity标题栏去掉,背景全透明,然后在此Activity的OnCreate将自己finish()掉,什么都不用干,只要在Manifest.xml中申明开机服务就OK,然后在程序内部响应此开机服务。 第二,不要Activity了,直接将程序写成一个Widgets…… 如果你还不明白的话,可以说一声,我写一个给你看。不过我写出来你看过后,你就又少了一次自己研究的机会了……
:<action android:name="android.intent.action.BOOT_COMPLETED" />
如你所说,andriod 3.1以后,安装后没经过用户启动,所有的Intent都是收不到的. 这样做是因为考虑到安全性问题. 除非Intent里指定了你所说的FLAG_EXCLUDE_STOPPED_PACKAGES. bootcompleteIntent是没有指定为FLAG_EXCLUDE_STOPPED_PACKAGES的. 所以你想装上去就能开机自己启动是不可能的.
从安全性角度上来说,谁也不想下载了一个app后,没碰过它,每次就能自己启动吧. 你的app从设计上来看,是不是可以改善一下呢?
系统无法执行android.intent.action.BOOT_COMPLETED的广播,不是不能执行广播里的内容,你的activity可见与不可见对结果没有影响,一样不会执行
|