I registered my broadcast receiver like this(given below) in the manifest file. its working fine.
<receiver android:name="MyIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
public class BeforeReboot extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.beforereboot);
}
private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
Intent startupBootIntent = new Intent(context,
AfterRebootDynamic.class);//new class to be launched
startupBootIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startupBootIntent);
}
};
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.BOOT_COMPLETED");
filter.addCategory("android.intent.category.HOME");
registerReceiver(myBroadcastReceiver, filter);
}
public void onPause() {
super.onPause();
unregisterReceiver(myBroadcastReceiver);
}
}