BroadcastReceiver ACTION_PACKAGE_FULLY_REMOVED未触发

时间:2018-10-04 18:02:56

标签: java android broadcastreceiver

从设备中删除任何应用后,我需要我的应用做出反应。按照documentation

  

ACTION_PACKAGE_FULLY_REMOVED   某些应用可能需要在删除另一个软件包后更新其存储的数据;对于这些应用,没有什么好办法可以注册此广播。

我正在按照那里的请求进行操作,但从未要求接收方执行此操作。请参见下面的代码:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    BroadcastReceiver testeReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(context,"App Uninstalled",Toast.LENGTH_LONG).show();
        }
    };


    registerReceiver(testeReceiver,new IntentFilter(Intent.ACTION_PACKAGE_FULLY_REMOVED));
}

任何想法为什么还是更好的方法?

谢谢你们! =)

1 个答案:

答案 0 :(得分:0)

您必须将您的接收器注册到manifiedt文件中,因为当该时间卸载任何应用程序时,并不能保证您的接收器已注册并且可以正常工作。

您可以使用元素在清单文件中注册接收器:

<receiver
   android:name="YOUR_Receiver_CLASS">
   <intent-filter>
      <action android:name="YOUR_ACTION"
   </intent-filter>
</receiver>