我定期將活動帶到前臺。代碼如下Android:如何在ActivityManager.getRunningTasks中找不到活動時向前移動
public void moveToFront() {
runOnUiThread(new Runnable() {
@Override
public void run() {
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
Log.e(TAG,"moveToFront ..recentTasks.size = "+recentTasks.size());
for (int i = 0; i < recentTasks.size(); i++)
{
Log.e(TAG, "Application executed : "
+recentTasks.get(i).baseActivity.toShortString()
+ "\t\t ID: "+recentTasks.get(i).id+"");
// bring to front
if (recentTasks.get(i).baseActivity.toShortString().indexOf("MainActivity") > -1) {
Log.e(TAG, "Moving to front");
activityManager.moveTaskToFront(recentTasks.get(i).id, ActivityManager.MOVE_TASK_WITH_HOME);
return;
}
}
}
});
有幾種方案,其中「activityManager.getRunningTasks」方法不返回TASKINFO我的活動(此方法也是不建議使用),因此我的代碼不會推動活動的前景。
1)我回顧ActivityManager.getRunningTasks is deprecated android但我不知道如何將它嵌入到我上面的代碼(或如何其字段映射到參數of'activitymanager.moveTaskToFront,這樣我可以把我的活動前景)
2)另外,如果上述代碼是從外部活動(稱爲服務)調用並且Android已經殺死我的活動(針對低內存),如何解決這種情況