1

我有一个应用程序,其中有一个特定的事件接收器。我的目标是在应用程序运行时显示一个对话框,否则(即如果应用程序没有运行)显示通知。

我已经实现的通知或显示对话框等事件。我无法确定用户是否打开或关闭了应用程序。

有任何想法吗 ?

4

3 回答 3

1
ActivityManager am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTaskInfoList = am.getRunningTasks(1);
ComponentName componentName = runningTaskInfoList.get(0).topActivity;

String runningActivityName = componentName.getClassName();
String runningActivityPackageName = componentName.getPackageName();

它需要"android.permission.GET_TASKS"许可。

于 2014-07-02T10:32:55.933 回答
1

准确的在这里——

ActivityManager activityManager =(ActivityManager)gpsService.this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList= activityManager.getRunningServices(Integer.MAX_VALUE);

if((serviceList.size() > 0)) {
    boolean found = false;

    for(int i = 0; i < serviceList.size(); i++) {
        RunningServiceInfo serviceInfo = serviceList.get(i);
        ComponentName serviceName = serviceInfo.service;

        if(serviceName.getClassName().equals("Packagename.ActivityOrServiceName")) {
            //Your service or activity is running
            found = true;
            break;
        }
    }
    if(found) {
        //Close your app or service
    }
}

来源 - how-can-i-check-if-my-app-is-running

于 2014-07-02T10:34:35.780 回答
1

应用程序是否仍然存在

public boolean isAppRunning()
    {
        boolean appFound = false;
        final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

        for (RunningTaskInfo recentTask : recentTasks)
        {

            if (recentTask.baseActivity.getPackageName().equals("package.Name"))
            {
                appFound = true;
                break;
            }

        }
        return appFound;
    }

也需要许可

<uses-permission android:name="android.permission.GET_TASKS" />

请检查一个我的问题与您的问题有关。在那请检查评论。

检查应用程序是否最小化/背景

于 2014-07-02T10:36:19.943 回答