简体   繁体   English

注册BroadcastReceiver后,OnReceive不会被调用

[英]OnReceive is not called even after BroadcastReceiver is registered

I want to send a Toast after the app launches. 我想在应用程序启动后发送Toast I'm using Android 9 so I register MyBroadcastReceiver not only on the manifest, but, in OnCreate too. 我正在使用Android 9,因此我不仅在清单上注册了MyBroadcastReceiver ,而且在OnCreate也注册了。 After that, I use method sendBroadcast() . 之后,我使用方法sendBroadcast() What I expected, OnReceive in MyBroadcast will get called but it's not. 我所期待的,MyBroadcast中的OnReceive会被调用,但事实并非如此。

This method is called when the BroadcastReceiver is receiving an Intent broadcast. 当BroadcastReceiver接收Intent广播时调用此方法。

-Android Developers Documentation -Android开发人员文档

AndroidManifest.xml : AndroidManifest.xml

<receiver android:name=".MyBroadcastReceiver">
</receiver>

MainActivity OnCreate() : MainActivity OnCreate()

registerReceiver(new MyBroadcastReceiver(), new IntentFilter());

Intent i = new Intent();
i.putExtra("action", 1);
sendBroadcast(i);

MyBroadcastReceiver OnReceive() : 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.

相关问题 BroadcastReceiver onReceive()在动态注册时不调用 - BroadcastReceiver onReceive() not Called when registered dynamically 成功注册了一个BroadcastReceiver到requestActivityTransitionUpdates,但是onReceive从来没有调用过 - Successfully registered a BroadcastReceiver to requestActivityTransitionUpdates, but onReceive never called 在动态注册广播接收器的onReceive方法时,它总是被调用吗? - Is a BroadcastReceiver's onReceive method always called the moment it gets registered dynamically? 使用LocalBroadcastManager注册BroadcastReceiver时,不会调用onReceive - onReceive not being called when BroadcastReceiver is registered using LocalBroadcastManager 即使在一个寄存器之后,Android BroadcastReceiver onReceive()在android 5.1.1上调用了两次 - Android BroadcastReceiver onReceive() called twice on android 5.1.1 even after one register BroadcastReceiver - onReceive未被调用 - BroadcastReceiver - onReceive Not Being Called 不调用来自BroadcastReceiver的onReceive - onReceive from BroadcastReceiver is not called BroadcastReceiver onReceive没有被调用 - BroadcastReceiver onReceive is not getting called 注册时触发BroadcastReceiver onReceive - BroadcastReceiver onReceive triggered when registered 不会调用BroadcastReceiver的onReceive方法 - BroadcastReceiver's onReceive method is not called
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM