【问题标题】:How can i check if my app is running如何检查我的应用程序是否正在运行
【发布时间】:2011-07-28 11:46:49
【问题描述】:
  1. 如何检查我的 android 应用程序是否已在运行以防止双重启动?

  2. 如何进行“硬退出”以防止我的应用在后台运行?

【问题讨论】:

    标签: android android-activity exit


    【解决方案1】:
    1. 不可能有“双重发射”。如果您的应用程序已经在运行,如果您尝试启动另一个实例,那么您将恢复第一个启动实例。

    2. 应用可以在生命周期的onPaused()序列中添加.finish(),或者在onPaused()中添加finish(),都可以通过添加.finish()来完成活动

    【讨论】:

    • 2.并且没有其他方法可以停止应用程序,可能就像在 c# Application.Exit(0); 中一样?有这样的吗?
    • 即使是(如 System.exit() )也不推荐。
    • 这正是我所说的。你也可以在这里阅读developer.android.com/reference/android/app/…
    • 这并不完全正确。我现在正面临这个问题。例如,如果我启动我的应用程序然后通过它拨打电话,该应用程序将留在后台(假设我不想完成()它)。通话结束后,我的应用程序由系统启动(intent.action.view),但拨打电话的实例仍在后台堆栈中。它没有恢复,另一个实例启动了......我认为这是因为不同的意图。
    【解决方案2】:

    这可能对你有帮助

    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
        }
    }
    

    【讨论】:

    • 一旦我知道哪个活动正在运行......我如何关闭那个打开的服务......
    猜你喜欢
    • 2011-06-10
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多