the code to start alarmManager after 10 sec
Intent intent=new Intent(SelfUpdateByScanQrCodeEventActivity.getContext(), MainActivity.class);
intent.putExtra("startInstallUpdateApk",true);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
SelfUpdateByScanQrCodeEventActivity.getContext().getApplicationContext(), createRestartAgentAlarmManagerRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) SelfUpdateByScanQrCodeEventActivity.getContext().getSystemService(ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND,delaySecTimeToRestartAgent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),pendingIntent);
}else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
}
the cod of MainActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preparation);
Bundle extras = this.getIntent().getExtras();
boolean startInstallUpdateApk = extras.getBoolean("startInstallUpdateApk");
}
}
Can I get the key,startInstallUpdateApk , onCreate after MainActivity called?
Simple answer to your question
Can I get the key,"startInstallUpdateApk" ,
onCreate
afterMainActivity
called?
is "yes". However...
Your code is calling PendingIntent.getBroadcast()
when it should be calling PendingIntent.getActivity()
. When the alarm triggers nothing will happen now because an Activity Intent
and a broadcast Intent
are 2 completely different things.