2013-04-30 109 views
10

我的android應用程序允許從這裏啓動其他已安裝的應用程序。這顯示了一些允許的應用程序。如果用戶嘗試啓動不允許的應用程序,則會顯示一條消息並使用正在運行的任務返回到我的活動(每個應用程序啓動的位置)。我的應用程序充當家庭啓動器。因此,如果該應用程序是被阻止的應用程序,則意圖進行該活動。例如:可以在三星設備中啓動Camera from Gallery。如果相機不是允許的人員,則顯示阻止的消息並退出到我的但是當重新啓動畫廊時,被阻止的消息再次顯示出頂級活動(攝像機活動)在棧中。是否有可能檢測到應用程序的退出?

但是,這些被阻止的應用程序的退出並不完美。

  1. 是否可以獲取應用程序的關閉/退出事件?

  2. 我該如何完成整個應用程序(通過完成其所有應用程序)。

  3. 如何啓動一個應用程序,而沒有任何以前的啓動歷史?

由於提前

回答

14

是否有可能親近一個應用程序的/退出事件?

是的,它可能是你的裏面你LauncherActivity可以overrideonDestroy這種方法將在應用程序退出調用。

How can i finish an application as whole(By finishing all its applications)? 

我相信你想停止你在這裏的所有運行活動。這可以通過多種方式實現。

android.os.Process.killProcess(android.os.Process.myPid()); 

Intent intent = new Intent(getApplicationContext(), YourHomeActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

這將清除所有的活動,並帶給用戶的HomeActivity。在調用此函數時,您可以添加一個意圖標誌,並使用該值您還可以完成HomeActivity。使用finish()方法完成活動。

如何啓動一個應用程序,而無需啓動之前的 歷史記錄?

您可以使用上面相同的解決方案來實現此目的。第二個。

希望這會有所幫助。

應用程序類中有一個onTerminate方法,但不能在生產環境中使用。查看更多about here

+1

+1很好的答案。 – 2013-04-30 11:48:36

+0

在使用onDestroy()時,在這裏我檢測到我的應用程序退出。我想檢測從我的應用程序啓動的其他應用程序的關閉事件。 – 2013-04-30 12:07:46

+5

Wait ....重寫LauncherActivity的onDestroy函數?如果LauncherActivity導航到其他Activity,該怎麼辦?這也會調用onDestroy。這對我來說似乎是災難性的。如果我錯了,你能糾正我嗎? – Subby 2014-04-02 14:25:47

相關問題