我想创建一个流量小部件,并在每次设备关闭时存储使用的流量。问题是我无法触发关闭接收器。
我使用了以下代码:
IntentFilter actionShutdown = new IntentFilter("android.intent.action.ACTION_SHUTDOWN");
IntentFilter quickPOFF = new IntentFilter("android.intent.action.QUICKBOOT_POWEROFF");
TrafficDataUpdate trafficDataUpdate = new TrafficDataUpdate();
getContext().registerReceiver(trafficDataUpdate, actionShutdown);
getContext().registerReceiver(trafficDataUpdate, quickPOFF);
我也尝试使用 list 中声明的接收器,但没有成功:
<receiver android:name=".receivers.TrafficDataUpdate">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
<action android:name="android.intent.action.QUICKBOOT_POWEROFF"/>
</intent-filter>
</receiver>
你有什么建议吗?
有人可以推荐我另一种计算数据流量的方法,而无需关闭接收器吗?
最佳答案
使用一个 IntentFilter
,而不是两个,教它监听两个 Action 。您的第二个 registerReceiver()
隐式取消注册第一个接收器。
另请注意,这仅在您的进程仍在内存中时才有效。通常,您的进程不在内存中,并且您的进程不在内存中符合用户的最佳利益。请将此实现替换为在 list 中注册接收器的实现,如以下 StackOverflow 线程所示:
关于Android 关机/关机广播接收器未启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20584762/