Android(安卓)判断程序处于前台或者后台
16lz
2021-01-26
package com.example.test;import java.util.List;import android.app.ActivityManager;import android.app.ActivityManager.RunningAppProcessInfo;import android.content.Context;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.util.Log;public class MainActivity extends ActionBarActivity {private boolean isActive;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overrideprotected void onStop() {super.onStop();if (!isAppOnForeground()) {// app 进入后台Log.i("TAG", "app 进入后台 --");isActive = false;}}@Overrideprotected void onResume() {super.onResume();if (!isActive) {// app 从后台唤醒,进入前台Log.i("TAG", "app 进入前台 ++");isActive = true;}}/** * 判断程序是否在前台运行 * * @return true:程序处于前台,false:程序在后台 */public boolean isAppOnForeground() {// Returns a list of application processes that are running on the// deviceActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);String packageName = getApplicationContext().getPackageName();List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();if (appProcesses == null)return false;for (RunningAppProcessInfo appProcess : appProcesses) {// The name of the process that this object is associated with.if (appProcess.processName.equals(packageName)&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {return true;}}return false;}}
更多相关文章
- Android(安卓)ExpandableListView 使用示例
- Aandroid 关于处理个推透传消息
- Android(安卓)NumberPicker 使用示例
- Android手机目录结构
- 友盟统计配置
- Android中关于路径
- android后台打水印,并进行压缩
- 取得应用程序的版本号 (跨4个平台)
- Android短信发送程序核心代码