2013-01-22 42 views
2

我正在嘗試爲Android設備製作一個自助服務終端類型的應用程序,並且我想確保該應用程序始終運行,並在其摔倒時重新啓動它。在android中監視正在運行的應用程序

我最初的想法是創建一個服務,固定到前臺,它定期檢查(使用系統Handler)以查看活動(具有UI的主要應用程序)是否正在運行。如果一個特定的應用程序正在運行或不

Intent intent = new Intent("android.intent.action.MAIN"); 
intent.setComponent(ComponentName.unflattenFromString("com.blah.blah.MyApp")); 
intent.addCategory("android.intent.category.LAUNCHER"); 
startActivity(intent); 

是否可以看到:如果它沒有運行,那麼服務應該通過開展使用意圖重新啓動活動? 對於獎金互聯網點 - 我可以告訴該應用程序是否在前臺(並使用服務來保持活動在前臺)?

回答

1

您可以查看當前的應用程序在頂部 String packageName= getSystemService(Context.ACTIVITY_SERVICE).getRunningTasks(1).get(0)).topActivity.getPackageName();

運行這段代碼在你的後臺服務在一個循環,並檢查您的應用程序運行時(任何應用程序)包名。

+1

太好了,謝謝! 對於其他尋找這個解決方案的人來說,我不得不這樣做了:@string packageName =((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE))。 ;' 它還要求: '' – Jono

相關問題