[英]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.