我在一个活动中以编程方式注册了一个广播接收器。它响应PACKAGE_REMOVED
意图,当一个包被移除时触发。
问题是,它没有接收到这个消息。我认为这是由于在我离开活动并移动到另一个活动卸载应用程序时,意图被触发,所以原始活动被暂停了。
可能是因为一个暂停的活动(在其中接收器没有在onPause
中取消注册)也会暂停接收器吗?
我在一个活动中以编程方式注册了一个广播接收器。它响应PACKAGE_REMOVED
意图,当一个包被移除时触发。
问题是,它没有接收到这个消息。我认为这是由于在我离开活动并移动到另一个活动卸载应用程序时,意图被触发,所以原始活动被暂停了。
可能是因为一个暂停的活动(在其中接收器没有在onPause
中取消注册)也会暂停接收器吗?
public class TestReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TestReciver",intent.getAction()+"\n"
+intent.getDataString()+"\n"
+"UID: "+intent.getIntExtra(Intent.EXTRA_UID,0)+"\n"
+"DATA_REMOVED: "+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false)+"\n"
+"REPLACING: "+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
);
}
}
在您的清单文件中像这样添加它(在您的<application>标签内):
<receiver android:name="TestReciver" >
<intent-filter >
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>