有時候背景的Receiver或service會希望知道目前跑在前景的Activity是什麼來決定它要做的事(應用?會有碰到這種的時候的)
要達成這目的就得透過ActivityManager.getRunningTasks 來達成了
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
if(tasks.size()>1) {
Log.d("TEST", "Top activity is " + tasks.get(0).topActivity);
}
因為這method回傳的結果會照時間排序, 所以第一個一定是最新的一個, 由於我們只需要知道目前foreground activity是誰, 因此我們只需要取一個