我有一个使用“AlarmService”的应用程序。为了处理警报,我有一个广播接收器。接收者必须开始某些活动。我用于实现以下目的的代码:
@Override
public void onReceive(Context context, Intent intent) {
...other code....
Intent intIntent = new Intent(context, MainActivity.class);
intIntent .putExtra("IsAlarm", true);
Intent alarmChooser = Intent.createChooser(intIntent , "Alarm");
alarmChooser.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(alarmChooser);
}
仅当活动未显示(如果它不在前台)时才有效。如果调用的活动已经打开,则不会发生任我怎么能克服这个? 是否有一个标志,如果它没有启动就会启动它,或者即使它在前台也发送意图?
P.S。我尝试使用提供的代码上方的专用“广播”。该广播的接收者以编程方式在MainActivity中注册:“onResume”将注册专用接收器,“onPause”将注销它。这样,如果MainActivity已经在它上面,它将接收广播,但是当手机进入“待机”时我遇到了问题 - “专用”接收器未注册。
答案 0 :(得分:0)
我认为你不需要选择器:
@Override
public void onReceive(Context context, Intent intent) {
Intent intIntent = new Intent(context, MainActivity.class);
intIntent.putExtra("IsAlarm", true);
context.startActivity(intIntent);
}
答案 1 :(得分:0)
签入活动onNewIntent
回调
应该有来自接收者的新意图