3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
我認(rèn)為目前的API沒(méi)有辦法做到這一點(diǎn)。我認(rèn)為這就是他們希望其工作的方式,以便當(dāng)用戶按主鍵退出時(shí),應(yīng)用程序無(wú)法強(qiáng)制自己重新打開(kāi)。您可以將home /啟動(dòng)器意圖添加到過(guò)濾器中,以進(jìn)行嘗試啟動(dòng)的任何活動(dòng)。然后,用戶將可以選擇基本將其視為主屏幕。然后,只要用戶按下主屏幕按鈕,它就會(huì)立即啟動(dòng)(他們必須從彈出的列表中選擇它,詢問(wèn)他們要使用哪個(gè)應(yīng)用來(lái)完成此操作,但他們可以檢查是否始終使用這個(gè)應(yīng)用程式,可讓您日后邁出這一步。)

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
這是我找到的解決方案。
將要立即開(kāi)始的意圖放在PendingIntent中,然后在其上調(diào)用send()方法。
所以代替這個(gè)
Intent intent = new Intent(context, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
只是這樣做
Intent intent = new Intent(context, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent =
PendingIntent.getActivity(context, 0, intent, 0);
try {
pendingIntent.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
我正在使用AlarmManager從Service立即啟動(dòng)Activity。即使您之前已按下主頁(yè)按鈕,活動(dòng)也將立即開(kāi)始。
在Android 5.0.1(Galaxy Alpha)上進(jìn)行了測(cè)試。
請(qǐng)勿在6.0.1(Nexus 7 2013)上使用:-(
不要在4.1.2(Galaxy S II)下工作:-(
不要在4.3(ASUS MeMO Pad FHD 10 ME302C)上工作:-(
@TargetApi(Build.VERSION_CODES.KITKAT)
private void startActivity() {
Intent intent = new Intent(this, Main.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
long now = Calendar.getInstance().getTimeInMillis();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
alarmManager.setExact(AlarmManager.RTC_WAKEUP, now, pendingIntent);
else
alarmManager.set(AlarmManager.RTC_WAKEUP, now, pendingIntent);
}
- 3 回答
- 0 關(guān)注
- 956 瀏覽
添加回答
舉報(bào)