【发布时间】:2014-01-15 12:04:21
【问题描述】:
在小米 2A,Android 版本 4.1 中,除非我启动我的应用程序,否则我在重启后无法接收任何广播。除非用户打开,否则小米默认禁用应用程序的启动完成广播。 我在这里阅读了很多帖子:
Broadcast receiver not working in ICS if the app is not started atleast once
http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html
Cannot receive broadcast in ICS
他们都说谷歌只是在 Android 3.0 版本之后实现了它。事实是我的Android 4.3 Galaxy Nexus,即使应用程序在重启后没有启动,也可以接收自定义广播(未启动完成)。 即使使用小米系统,打开我的应用程序的启动完成权限后也可以接收广播。谁能告诉我为什么?
这里是发送意图:
Intent intent = new Intent();
intent.setAction("com.test.test");
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES | intent.getFlags());
context.sendBroadcast(intent);
接收如下:
<receiver
android:name="com.test.TestReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.test.test"></action>
</intent-filter>
</receiver>
public class TestReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.test.test")) {
Log.e("Chris", "received test action");
}
}
}
【问题讨论】:
-
能发一下代码吗
-
它只是一个静态接收器,在意图过滤器中有一个动作。
-
可能还有更多问题......兄弟,我们不是在没有看到代码的情况下告诉你解决方案的向导:)
-
您的代码不适用于“启动完成广播”。
-
是的,只是我应用的启动完成权限被小米系统禁用了。我只想发送自定义广播,而不是启动完成广播。
标签: android