繁体   English   中英

注册BroadcastReceiver后,OnReceive不会被调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM