广播接收器启动活动

时间:2014-03-30 13:38:01

标签: android android-intent broadcastreceiver

我有一个使用“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已经在它上面,它将接收广播,但是当手机进入“待机”时我遇到了问题 - “专用”接收器未注册。

2 个答案:

答案 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回调  应该有来自接收者的新意图