Service
アプリケーションの1つがActivity
フォアグラウンドで実行されているかどうかを確認するにはどうすればよいですか?
質問する
40306 次
9 に答える
64
パッケージ名で以下のメソッドを使用します。アクティビティのいずれかがフォアグラウンドにある場合は true を返します。
public boolean isForeground(String myPackage) {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager.getRunningTasks(1);
ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
return componentInfo.getPackageName().equals(myPackage);
}
アップデート:
権限を追加:
<uses-permission android:name="android.permission.GET_TASKS" />
于 2012-08-29T06:44:07.617 に答える
-1
AndroidでgetRunninTasksを取得し、タスクが実行されているかどうかをパッケージ名で確認できると思います。
public boolean isServiceRunning() {
ActivityManager activityManager = (ActivityManager)Monitor.this.getSystemService (Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE);
isServiceFound = false;
for (int i = 0; i < services.size(); i++) {
if (services.get(i).topActivity.toString().equalsIgnoreCase("ComponentInfo{com.lyo.AutoMessage/com.lyo.AutoMessage.TextLogList}")) {
isServiceFound = true;
}
}
return isServiceFound;
}
于 2012-08-29T06:38:30.037 に答える