3 回答

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

TA貢獻1856條經驗 獲得超17個贊
這是我找到的解決方案。
將要立即開始的意圖放在PendingIntent中,然后在其上調用send()方法。
所以代替這個
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貢獻1785條經驗 獲得超4個贊
我正在使用AlarmManager從Service立即啟動Activity。即使您之前已按下主頁按鈕,活動也將立即開始。
在Android 5.0.1(Galaxy Alpha)上進行了測試。
請勿在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 關注
- 962 瀏覽
添加回答
舉報