主要是android4.0还是3.1的广播机制好像改了,就是一个应用如果安装到手机后没有被启动过的话是接收不到系统广播的,也就是说如果你想接收系统广播,那必须保证你的程序被运行过。我查到的资料说是广播机制增加了两个flag,默认情况下系统是不会给一个没有启动过的程序发送系统广播的
首先需要明确一点:没有Activity的Android程序,是启动不了滴,不过,你可以指定一个Activity,或者,指定一个桌面挂件呀,就是Widgets,知道吧?
那么,我们就有两种方法来实现你的功能:那么,我们就有两种方法来实现你的功能:
第一,写一个很简单的程序,就一个Activity,指此Activity标题栏去掉,背景全透明,然后在此Activity的OnCreate将自己finish()掉,什么都不用干,只要在Manifest.xml中申明开机服务就OK,然后在程序内部响应此开机服务。
第二,不要Activity了,直接将程序写成一个Widgets……
如果你还不明白的话,可以说一声,我写一个给你看。不过我写出来你看过后,你就又少了一次自己研究的机会了…
可以开机自启动服务,不用activity也可以,但是有个问题,就是你第一次启动的话是没问题的,但是假如你在手机里面运行了这个程序,后面又删除了这个程序之后又要装上这个程序启动的话就不能启动了,只能写一个activity启动,然后你在androidMenifest里面把activity注释掉,以后就不会有activity了
我个人在android4.1系统,在做无图标开机启动遇到到了好多困难。发现没Activity而且没启动Activity开机后程序均不能自动运行服务。后来又发现偶尔又可以,没图标也照样能启动服务。甚是纳闷
原来我前一次程序是有Activity,有图标的,而我这次安装把
<intent-filter> <action android:name="android.intent.action.MAIN" /> <!-- <category android:name="android.intent.category.LAUNCHER" /> --> </intent-filter>中的
<category android:name="android.intent.category.LAUNCHER" />去掉了,程序安装的过程不是删除安装,而是直接替换,然后下次开机启动,程序没图标也照样开机运行了。因为你前一次已经运行过了
所以想要开机启动,就必须解决安装上去后第一次能启动的问题!
总结于:http://bbs.csdn.net/topics/390216017