All of us known we register BroadcastReceiver in two types
1)Static Registration
2)Dynamic Registration
B
I am going to show you difference static and dynamic broadcast receivers via coding:
a) Define UI for both kind of receviers:
b) DynamicBroadcastReceiver.java
public class DynamicBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Dynamic Broadcast", Toast.LENGTH_SHORT).show();
}
}
c) StaticBroadcastReceiver.java
public class StaticBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Static Broadcast", Toast.LENGTH_SHORT).show();
}
}
d) MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//////////////////=================Starts Dynamic Broadcast Receiver
DynamicBroadcastReceiver dynamicBroadcastReceiver = new DynamicBroadcastReceiver();
public void registerBroadcastReceiverDynamically(View view) {
IntentFilter filter = new IntentFilter();
filter.addAction("MY_BROADCAST");
registerReceiver(dynamicBroadcastReceiver, filter);
}
public void sendUsingDynamicallyRegisteredBroadcastReceiver(View view) {
Intent i = new Intent();
i.setAction("MY_BROADCAST");
sendBroadcast(i);
}
@Override
protected void onDestroy() {
if (dynamicBroadcastReceiver != null) {
unregisterReceiver(dynamicBroadcastReceiver);
}
super.onDestroy();
}
//////////////////=================Ends Dynamic Broadcast Receiver
//////////////////=================Starts Static Broadcast Receiver
public void sendUsingStaticallyRegisteredBroadcastReceiver(View view) {
Intent i = new Intent();
i.setAction("MY_BROADCAST_STATIC");
sendBroadcast(i);
}
}
e) Manifest File: