Java 广播接收器动作\u程序包\u完全\u已移除未触发
我需要我的应用在从设备中删除任何应用后做出反应。依照 操作\u程序包\u完全\u移除 当另一个软件包被删除时,某些应用可能需要更新其存储的数据;对于这些应用程序,除了注册此广播之外,没有其他好的选择 我是按照那里的要求做的,但是接收者从来没有被要求这样做。请参见下面的代码:Java 广播接收器动作\u程序包\u完全\u已移除未触发,java,android,broadcastreceiver,Java,Android,Broadcastreceiver,我需要我的应用在从设备中删除任何应用后做出反应。依照 操作\u程序包\u完全\u移除 当另一个软件包被删除时,某些应用可能需要更新其存储的数据;对于这些应用程序,除了注册此广播之外,没有其他好的选择 我是按照那里的要求做的,但是接收者从来没有被要求这样做。请参见下面的代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC
@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));
}
你知道为什么还是更好的方法吗
谢谢你们 你必须在你的manifiest文件中注册你的接收器,因为当任何应用程序在那时卸载时,并不保证你的接收器已注册并且可以工作 您可以使用以下元素在清单文件中注册接收方:
<receiver
android:name="YOUR_Receiver_CLASS">
<intent-filter>
<action android:name="YOUR_ACTION"
</intent-filter>
</receiver>
在后台卸载其他应用程序的频率?尝试在清单中创建并注册隐式BroadcastReceiver
。如文档所示:“如果您的应用程序目标为Android 8.0或更高版本,则您不能使用清单为大多数隐式广播(并非专门针对您的应用程序的广播)声明接收器。”。当用户正在积极使用你的应用程序时,你仍然可以使用上下文注册的接收者。”但是耶。。。我也试过,但也没有。@RodrigoSalomao动作包不是完全移除了系统接收器吗?正如本文档所示,它不受android 8的限制