簡體   English   中英

廣播接收器啟動活動

[英]Broadcast receiver start activity

我有一個使用“ 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);
}

這有效,但前提是尚未顯示活動(如果活動不在前台)。 如果被叫活動已經打開,則什么也不會發生。 我該如何克服呢? 如果沒有啟動活動,是否有一個標志將啟動該活動,或者即使活動在前台也將向其發送意圖?

PS我嘗試在提供的代碼上方使用專用的“廣播”。 在MainActivity中以編程方式注冊了該廣播的接收者:“ onResume”將注冊專用接收器,“ onPause”將取消注冊它。 這樣,如果MainActivity已經在它上面,它將接收廣播,但是當電話轉到“待機”時,我有一個問題-未注冊“專用”接收器。

我認為您不需要選擇器:

@Override
public void onReceive(Context context, Intent intent) {
    Intent intIntent = new Intent(context, MainActivity.class);
    intIntent.putExtra("IsAlarm", true);
    context.startActivity(intIntent);
}

在活動onNewIntent回調中onNewIntent入,接收者應該有新的意圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM