我想创建一个流量小部件,并在每次设备关闭时存储使用的流量。问题是我无法触发关机接收器。
我使用了以下代码:
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);
我也试过在清单中声明的接收器,但没有成功:
<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>
有人可以推荐我另一种计算数据流量的方法,没有关机接收器吗?
答案 0 :(得分:4)
使用一个IntentFilter
而不是两个,教它听两个动作。您的第二个registerReceiver()
隐式取消注册第一个接收者。
另请注意,只有当您的进程仍在内存中时,这才会起作用。通常,您的进程不在内存中,并且用户的最佳利益是您的进程不在内存中。请将此实现替换为接收器在清单中注册的实现,如以下StackOverflow线程所示: