Android Kill进程重启应用程序

时间:2012-07-16 11:02:44

标签: android

我在Android中将本机游戏与Java应用程序集成有点奇怪的问题。

我必须为游戏添加一个原生.so文件,并用标准活动包装它以显示启动画面,菜单和其他一些东西。

我注意到在本机代码中似乎有一个kill进程调用。我在logcat中看到了这一点。

  

致命信号11(SIGSEGV)位于0x00000000(代码= 1)

其次是

  

DEBUG / Zygote(119):由信号(11)终止的过程28720

当我在本机游戏中点击退出选项时会发生这种情况。当发生这种情况时,应用程序将重新启动,即在新进程中创建清单get中的Activity设置为启动器。我在logcat中看到,Activity管理器注意到该进程已经死亡,然后执行此操作:

  

INFO / ActivityManager(192):为活动my.package.name/my.launcher.Activity启动proc my.package.name:pid = 28820 uid = 10061 gids = {3003,1015}

不幸的是,我无法获得原生资源,也无法将其更改。

到目前为止,我提出的最佳解决方案是在onCreate中进行某种检查,如果我认为应用程序已重新启动,则调用完成。我真的不喜欢这样做的想法,这就是我现在在这里发帖的原因。

有没有人对“好”的方法有任何建议?任何破坏我提议的解决方案也是受欢迎的。

我想这不是一个标准问题所以框架可能没有太多帮助我。尽管我花了很多时间阅读文档并在Android上进行开发,但我仍然远远不是Android专家,所以对此有任何建议都会有很大的帮助。

编辑:

请注意,通过创建2个活动可以重现此行为。第一个应该发布第二个。第二个Activity应该有一种方法来终止应用程序进程,例如调用

的按钮
android.os.Process.killProcess(pid);

因此,如果活动A是清单中的启动器活动。 A开始B. B杀死进程。 A在不同的进程中由Android OS自动启动。

我做了这个测试,看看我做的事情是否导致了重启。测试与描述完全一样,没有对清单进行编辑,也没有额外的代码。重启将永远发生。希望我能找到办法阻止它发生。

0 个答案:

没有答案