2013-04-30 101 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

相关问题