[英]BroadcastReceiver onReceive() not Called when registered dynamically
[英]OnReceive is not called even after BroadcastReceiver is registered
我想在应用程序启动后发送Toast
。 我正在使用Android 9,因此我不仅在清单上注册了MyBroadcastReceiver
,而且在OnCreate
也注册了。 之后,我使用方法sendBroadcast()
。 我所期待的,MyBroadcast中的OnReceive会被调用,但事实并非如此。
当BroadcastReceiver接收Intent广播时调用此方法。
-Android开发人员文档
AndroidManifest.xml :
<receiver android:name=".MyBroadcastReceiver">
</receiver>
MainActivity OnCreate() :
registerReceiver(new MyBroadcastReceiver(), new IntentFilter());
Intent i = new Intent();
i.putExtra("action", 1);
sendBroadcast(i);
MyBroadcastReceiver OnReceive() :
Toast.makeText(context, "toast", Toast.LENGTH_SHORT).show();
//Declare in Manifest as below
<receiver android:name=".MyBroadcastReceiver" >
<intent-filter android:priority="1000">
<action android:name="YOUR_ACTION"/>
</intent-filter>
</receiver>
// Register in onResume
IntentFilter intentFilter = new IntentFilter("MyBroadcastReceiver");
registerReceiver( MyBroadcastReceiver, intentFilter);
// call it as below
Intent intent = new Intent("YOUR_ACTION");
intent.setPriority(1000);
Bundle extras = new Bundle();
extras.putString("action", 1);
sendBroadcast(intent);
// Dont forget to unregister it in onPause().
// unRegister it in onStop() if registered in onStart().
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.