當前位置:首頁 » 安卓系統 » android監聽app

android監聽app

發布時間: 2022-10-01 13:12:45

⑴ android通過什麼來監聽應用程序的啟動

Android中可以使用ActivityManager來獲得正在運行或者已經啟動的程序,示例如下:

java">//查詢所有正在運行的應用程序信息:包括他們所在的進程id和進程名
//這兒我直接獲取了系統里安裝的所有應用程序,然後根據報名pkgname過濾獲取所有真正運行的應用程序
privateList<RunningAppInfo>queryAllRunningAppInfo(){
pm=this.getPackageManager();
//查詢所有已經安裝的應用程序
List<ApplicationInfo>listAppcations=pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
Collections.sort(listAppcations,newApplicationInfo.DisplayNameComparator(pm));//排序

//保存所有正在運行的包名以及它所在的進程信息
Map<String,ActivityManager.RunningAppProcessInfo>pgkProcessAppMap=newHashMap<String,ActivityManager.RunningAppProcessInfo>();

=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
//通過調用ActivityManager的getRunningAppProcesses()方法獲得系統里所有正在運行的進程
List<ActivityManager.RunningAppProcessInfo>appProcessList=mActivityManager
.getRunningAppProcesses();

for(ActivityManager.:appProcessList){
intpid=appProcess.pid;//pid
StringprocessName=appProcess.processName;//進程名
Log.i(TAG,"processName:"+processName+"pid:"+pid);

String[]pkgNameList=appProcess.pkgList;//獲得運行在該進程里的所有應用程序包

//輸出所有應用程序的包名
for(inti=0;i<pkgNameList.length;i++){
StringpkgName=pkgNameList[i];
Log.i(TAG,"packageName"+pkgName+"atindex"+i+"inprocess"+pid);
//加入至map對象里
pgkProcessAppMap.put(pkgName,appProcess);
}
}
//保存所有正在運行的應用程序信息
List<RunningAppInfo>runningAppInfos=newArrayList<RunningAppInfo>();//保存過濾查到的AppInfo

for(ApplicationInfoapp:listAppcations){
//如果該包名存在則構造一個RunningAppInfo對象
if(pgkProcessAppMap.containsKey(app.packageName)){
//獲得該packageName的pid和processName
intpid=pgkProcessAppMap.get(app.packageName).pid;
StringprocessName=pgkProcessAppMap.get(app.packageName).processName;
runningAppInfos.add(getAppInfo(app,pid,processName));
}
}

returnrunningAppInfos;

}

⑵ Android 能不能監聽到第三方應用App的啟動和退出

答案是No,沒有這樣的broadcast,你沒法用receiver去監聽。唯一的辦法就是後台查詢。
整個後台線程,隨時去遍歷

// Get currently running application processes
List<ActivityManager.RunningAppProcessInfo> list = servMng.getRunningAppProcesses();
if(list != null){
for(int i=0;i<list.size();++i){
if("com.android.email".matches(list.get(i).processName)){
int pid = android.os.Process.getUidForName("com.android.email");
android.os.Process.killProcess(pid);
}else{
mTextVIew.append(list.get(i).processName + "\n");
}
}
}

⑶ 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等。

⑷ Android 能不能監聽到第三方應用App的啟動和退出

可以,我原來做的是用一個計時器(為了准確率可以0.1s輪詢一次)去監聽手機的TopActivity,獲取TopActivity的包名(應用的包名是唯一的),當TopActivity發生變化就說明使用的應用發生了改變,就實現了監聽第三方應用的啟動和退出(其中也包括系統應用,過濾包名就可以了)。有什麼問題再問我

⑸ Android 能不能監聽到第三方應用App的啟動和退出

不能,沒有這樣的broadcast,沒法用receiver去監聽。唯一的辦法就是後台查詢。 整個後台線程,隨時去遍歷 // Get currently running application processes List list = servMng.getRunningAppProcesses(); if(list != null){

⑹ Android 能不能監聽到第三方應用App的啟動和退出

應該是可以的。還可以在應用內調用某些應用 或者 是獲取並操作其他應用的數據,不過要有相關的許可權或者ContentProvider。

監聽程序啟動見 某大神的博客:
http://blog.csdn.net/xiao_chilun/article/details/52096149

⑺ android 如何監聽某app中 intent傳參

//Bundle bundle = new Bundle(); //這句是多餘的
Bundle bundle = this.getIntent().getExtras();
categorySelected = bundle.getString("category");
pcode = bundle.getString("pcode");

上面說的問題與你提的問題關系不大,感覺你的問題不太可能啊,請檢查傳入的時候:
bundle.putString("category", category);

請檢查傳入的時候category本來就是空指針。

檢查過了,傳入的時候是有值的,但是獲取的時候就是null,pcode那個參數就可以,好郁悶啊

值都保持在一個map中,應該對漢字不漢字沒有啥區別:Map<String, Object> mMap = null;

檢查下,一,名字是否正確,二,是否有異常輸出,如果獲取失敗,看源代碼有異常輸出的:
public String getString(String key) {
unparcel();
Object o = mMap.get(key);
if (o == null) {
return null;
}
try {
return (String) o;
} catch (ClassCastException e) {
typeWarning(key, o, "String", e);
return null;
}
}

熱點內容
伺服器共享文件如何查看訪問記錄 發布:2025-01-19 10:08:55 瀏覽:400
datasourceSQL 發布:2025-01-19 10:01:25 瀏覽:838
aspnet網站的編譯 發布:2025-01-19 10:00:49 瀏覽:334
路特仕A9工廠密碼是多少 發布:2025-01-19 09:59:44 瀏覽:257
linux的命令find 發布:2025-01-19 09:42:55 瀏覽:174
簡單的計算機編程 發布:2025-01-19 09:39:54 瀏覽:520
c語言table 發布:2025-01-19 09:27:50 瀏覽:953
java8gc 發布:2025-01-19 09:03:30 瀏覽:648
mac個人收藏添加文件夾 發布:2025-01-19 08:55:12 瀏覽:531
股票編程書籍 發布:2025-01-19 08:55:01 瀏覽:120