0

I want to send a Toast after the app launches. I'm using Android 9 so I register MyBroadcastReceiver not only on the manifest, but, in OnCreate too. After that, I use method sendBroadcast(). What I expected, OnReceive in MyBroadcast will get called but it's not.

This method is called when the BroadcastReceiver is receiving an Intent broadcast.

-Android Developers Documentation

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();
Morteza Jalambadani
  • 2,190
  • 6
  • 21
  • 35

1 Answers1

0
//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().  
Arwy Shelke
  • 333
  • 1
  • 2
  • 12