以下是我的AndroidManifest的代码
//广播接收器
<receiver android:name="com.broadcastreceivers.ApplicationInstalled" >
<intent-filter android:priority="101" >
<action android:name="android.intent.action.SIG_STR" />
</intent-filter>
</receiver>
//启动器活动
<activity
android:name="com.activity.MasterActivity"
android:label="@string/app_name"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我不想在我的应用程序中使用Activity,因此当我从AndroidManifest.xml中注释或删除活动声明部分时,它会停止触发Broadcast Receiver事件以进行信号更改。但是,当我宣布上述活动时,它工作正常。
我的问题是为什么我们在项目中需要Activity?
编辑:我目前正在使用Android 2.3.3版本。
答案 0 :(得分:2)
<强>问题:强>
从3.1开始安装应用程序时,它们处于 stopped
状态,因此在用户明确启动它们之前它们将无法运行。
因此,当首次安装应用程序时,系统会完全忽略它们,除非用户手动启动某些内容:单击启动器活动或添加应用程序小部件,很可能是这样。
一直依赖于在没有用户干预的情况下进行某种系统广播的开发人员需要针对Android 3.1及更高版本调整他们的应用程序。
<强>阐释:强>
正如您的问题所述,当您使用Activity
以上<intent-filter>
声明时,它会启动应用程序,因此现在您的应用程序将处于active
状态,而不是{{1这就是原因,现在它将能够收到stopped
<强>参考:强>
我希望它会有所帮助!!