定期的にアクティビティをフォアグラウンドに表示します。コードは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がアクティビティを殺した場合(メモリ不足の場合)の対処法