public class AppStatusService extends Service {
private static final String TAG = "AppStatusService";
private ActivityManager activityManager;
private String packageName;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
packageName = this.getPackageName();
new Thread() {
public void run() {
try {
while (true) {
Thread.sleep(1000);
if (isAppOnForeground()) {
Log.i(TAG, "true");
} else {
Log.i(TAG, "false");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
return super.onStartCommand(intent, flags, startId);
}
private boolean isAppOnForeground() {
// Returns a list of application processes that are running on the device
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) return false;
for (RunningAppProcessInfo appProcess : appProcesses) {
// importance:
// The relative importance level that the system places
// on this process.
// May be one of IMPORTANCE_FOREGROUND, IMPORTANCE_VISIBLE,
// IMPORTANCE_SERVICE, IMPORTANCE_BACKGROUND, or IMPORTANCE_EMPTY.
// These constants are numbered so that "more important" values are
// always smaller than "less important" values.
// processName:
// 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推斷程式前後臺狀態
相關文章
- 判斷當前應用程式處於前臺還是後臺 ANDROIDAndroid
- iOS APP各種狀態(進入後臺,前臺等)iOSAPP
- Android檢測網路狀態,判斷當前網路是否可用Android
- android判斷狀態列是否可見Android
- linux程式前臺-後臺執行Linux
- JS在瀏覽器中判斷當前網路狀態JS瀏覽器
- 判斷Nginx存活狀態Nginx
- Linux 程式前後臺切換|管理Linux
- 直播平臺原始碼,快速獲取當前狀態列高度原始碼
- 今天推薦,今年排名前 15 的 Vue 後臺管理模板Vue
- iOS判斷網路狀態iOS
- 微信小程式 部署(後臺是springboot專案 前後臺分流)微信小程式Spring Boot
- .NET後臺呼叫JS前臺JS
- unity 動態修改當前橫豎屏狀態Unity
- Android 狀態列透明Android
- 後端的狀態碼後端
- GAT專案前臺到後臺
- Android判斷螢幕狀態與螢幕解鎖和鎖定Android
- android狀態列一體化(沉浸式狀態列)Android
- 由ASP.NET所謂前臺呼叫後臺、後臺呼叫前臺想到HTTP——理論篇ASP.NETHTTP
- 由ASP.NET所謂前臺呼叫後臺、後臺呼叫前臺想到HTTP——實踐篇(一)ASP.NETHTTP
- 由ASP.NET所謂前臺呼叫後臺、後臺呼叫前臺想到HTTP——實踐篇(二)ASP.NETHTTP
- oracle RAC 診斷叢集狀態命令Oracle
- jstack判斷執行緒狀態JS執行緒
- Android 必知必會 - 根據包名判斷 App 執行狀態AndroidAPP
- android之狀態列提示Android
- 如何實現SSH斷開後 程式仍然在後臺執行
- 舒服的判斷當前應用是否處於前臺
- Android 使用前臺服務Android
- Laravel前後臺共享資料Laravel
- linux 程式 狀態Linux
- [快速搞定]android 狀態列一體化 沉浸式狀態列Android
- 統計當前系統中不同執行狀態的程式數量
- Asp.Net前臺呼叫後臺變數ASP.NET變數
- Android 判斷當前系統語言Android
- Android全屏與透明狀態列Android
- Android獲取狀態列高度Android
- Android通知之狀態列通知Android