編輯:關於Android編程
本文實例為大家分享了Android判斷當前App狀態的具體實現代碼,供大家參考,具體內容如下
第一種:
/**
*判斷當前應用程序處於前台還是後台
*
* @param context
* @return
*/
public static boolean isApplicationBroughtToBackground(final Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
上面這段代碼是需要一個權限的:
< uses-permission Android:name=”android.permission.GET_TASKS” />
第二種:
下面這段代碼是我最新發現,無需權限,妥妥滴:
不過我稍微做了調整,後台分為:service後台和activity後台,這裡認為不是前台的都認為後台。
•service運行在後台,appProcess.importance = IMPORTANCE_SERVICE,
•沒有service運行的後台,
public static boolean isBackground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(context.getPackageName())) {
if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
System.out.print(String.format("Foreground App:", appProcess.processName));
return false;
}else{
System.out.print("Background App:"+appProcess.processName);
return true;
}
}
}
return false;
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android自定義View之帶小圓圈的倒計時圓形進度條
上一篇寫了一個可隨時暫停的圓形進度條,接下來再來撸一個帶小圓圈的倒計時View,主要難點是對於隨著進度條變化而變化的小圓的繪制。看了givemeacondom大神寫的小圓
Android編程開發實現帶進度條和百分比的多線程下載
本文實例講述了Android編程開發實現帶進度條和百分比的多線程下載。分享給大家供大家參考,具體如下:繼上一篇《java多線程下載實例詳解》之後,可以將它移植到我們的安卓
Android逆向分析之APKTool
由於剛踏入Android逆向分析領域,因此有許多的不懂,所以得不斷地去學習。因為是入門,我又有一定的Android應用開發基礎,所以先從一些簡單工程的反編譯開始入手,先了
mac開發android環境搭建步驟圖解
1.Java JDK需要先說明下,OS X系統是自帶有Java JDK1.6的。不過這裡我安裝的是JDK7,下載地址:http://www.oracle.co