1. android 能不能監聽到第三方應用App的啟動和退出
可以,我原來做的是用一個計時器(為了准確率可以0.1s輪詢一次)去監聽手機的TopActivity,獲取TopActivity的包名(應用的包名是唯一的),當TopActivity發生變化就說明使用的應用發生了改變,就實現了監聽第三方應用的啟動和退出(其中也包括系統應用,過濾包名就可以了)。有什麼問題再問我
2. 安卓編程怎樣判斷app應用第一次啟動
1、從manifest中讀取到android:versionCode,
2、然後將其與preference中的versioncode做比較,
3、當preference中的versioncode小於manifest中的版本號時,則代表此次啟動為該版本的首次啟動,
java">
代碼如下
PackageInfoinfo=getPackageManager().getPackageInfo(PACKAGE_NAME,0);
intcurrentVersion=info.versionCode;
SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(this);
intlastVersion=prefs.getInt(VERSION_KEY,0);
if(currentVersion>lastVersion){
//如果當前版本大於上次版本,該版本屬於第一次啟動
......
//將當前版本寫入preference中,則下次啟動的時候,據此判斷,不再為首次啟動
prefs.edit().putInt(VERSION_KEY,currentVersion).commit();
}
3. Android 能不能監聽到第三方應用App的啟動和退出
在Android中,Activity有個棧,一個Activity結束掉,會回到上一個Activity,並不是退出應用程序。 Android中,退出應用程序的方式: 1.通過pid int pid = android.os.Process.myPid(); //獲取當前應用程序的PID android.os.Process.killProcess(pid); //殺死當前進程 這種方法退出應用,是會保留某些後進程,例如:Service,Notifications等。 2.通過ActivityManager ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); //獲取應用程序管理器 manager.killBackgroundProcesses(getPackageName()); //強制結束當前應用程序 這種方式退出應用,會結束本應用程序的一切活動,因為本方法會根據應用程序的包名殺死所有進程包括Activity,Service,Notifications等。