问题描述
10秒后启动alarmManager的代码
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,pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP,pendingIntent);
}
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");
}
}
我可以在调用 MainActivity 后获取密钥、startInstallUpdateApk 和 onCreate 吗?
解决方法
简单回答您的问题
我可以在调用 onCreate
后获取密钥 "startInstallUpdateApk",MainActivity
吗?
是“是”。不过……
您的代码在应该调用 PendingIntent.getBroadcast()
的时候却调用了 PendingIntent.getActivity()
。当警报触发时,现在什么都不会发生,因为 Activity Intent
和广播 Intent
是两种完全不同的事物。