BroadcastReceiver Intent.ACTION_PACKAGE_ADDED/REMOVED Android Oreo [英] BroadcastReceiver Intent.ACTION_PACKAGE_ADDED/REMOVED Android Oreo
本文介绍了BroadcastReceiver Intent.ACTION_PACKAGE_ADDED/REMOVED Android Oreo的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的广播接收器类,主要是其实现.
This is my broadcast receiver class and the implementation of it in main.
问题在于onReceive
方法永远不会被调用.
Problem is that onReceive
method never gets called.
class MyBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(p0: Context?, p1: Intent?) {
Toast.makeText(p0, "It works", Toast.LENGTH_LONG).show()
}
}
class MainActivity : AppCompatActivity() {
......
private var broadcastReceiver: MyBroadcastReceiver = MyBroadcastReceiver()
override fun onCreate(savedInstanceState: Bundle?) {
......
registerReceiver(broadcastReceiver, IntentFilter().apply {
addAction(Intent.ACTION_PACKAGE_ADDED)
addAction(Intent.ACTION_PACKAGE_REMOVED)
})
}
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(broadcastReceiver)
}
}
请帮助.预先感谢.
推荐答案
通常BroadcastReceiver
需要设置许多步骤.
Usually the BroadcastReceiver
needs a number of steps to be set up.
首先您没有将清单传递给清单吗?
First of all did yout pass to the manifest the receiver?
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
</intent-filter>
</receiver>
Edit: Please see this post, where is suggested ACTION_PACKAGE_FULLY_REMOVED or JobScheduler
还尝试在模拟器上重新安装应用程序
try also to reinstall the app on the emulator
这篇关于BroadcastReceiver Intent.ACTION_PACKAGE_ADDED/REMOVED Android Oreo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文