gpt4 book ai didi

判断Android程序是否在前台运行的两种方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章判断Android程序是否在前台运行的两种方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

?
1
2
3
4
5
6
7
8
9
@Override
protected void onStop() {
   if (!isAppOnForeground()) {
     Debug.i( "dwy" , "enter background" );
     mIsBackground = true ;
   } else {
     Debug.i( "dwy" , "foreground" );
     mIsBackground = false ;
   }

  。

Judge is App in background when onStop() get called. 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public boolean isAppOnForeground() {
     // Returns a list of application processes that are running on the
     // device
 
     ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
     String packageName = getApplicationContext().getPackageName();
 
     List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager
         .getRunningAppProcesses();
     if (appProcesses == null )
       return false ;
 
     for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
       // The name of the process that this object is associated with.
       if (appProcess.processName.equals(packageName)
           && appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
         return true ;
       }
     }
     return false ;
   }

  。

方法二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
   * 需要权限:android.permission.GET_TASKS
   *
   * @param context
   * @return
   */
   public boolean isApplicationBroughtToBackground(Context context) {
     ActivityManager am = (ActivityManager) context
             .getSystemService(Context.ACTIVITY_SERVICE);
     List<RunningTaskInfo> tasks = am.getRunningTasks( 1 );
     if (tasks != null && !tasks.isEmpty()) {
       ComponentName topActivity = tasks.get( 0 ).topActivity;
       Debug.i(TAG, "topActivity:" + topActivity.flattenToString());
       Debug.f(TAG, "topActivity:" + topActivity.flattenToString());
       if (!topActivity.getPackageName().equals(context.getPackageName())) {
         return true ;
       }
     }
     return false ;
   }

最后此篇关于判断Android程序是否在前台运行的两种方法的文章就讲到这里了,如果你想了解更多关于判断Android程序是否在前台运行的两种方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com