为什么Android会杀死我的BROWSABLE活动?

时间:2013-03-20 15:27:24

标签: android android-intent intentfilter

我正在编写一个企业应用程序,需要在用户使用Intranet网站时在后台处理一些数据。应用程序的清单正确声明了BROWSABLE intent过滤器,浏览器通过JavaScript正确启动它。

通常,应用程序对用户是不可见的,因此应用程序只传递来自URI的参数调用后台服务并终止自身。但有时,某些后台服务需要用户交互。在这种情况下,主要活动DOESN&T终止;相反,它会提示用户提供所需的任何信息/操作,并且仅在满足所有条件时终止。

只要应用程序是通过直接用户交互(用户点击控件 - >调用JavaScript函数)从浏览器触发应用程序,

完全可以 ; JS函数请求在应用程序中注册的URI - >我的应用程序显示并等待用户输入。)

但是,如果在网页中没有直接用户交互的情况下调用JS(例如,来自onLoad()事件处理程序),则应用程序正常启动,但它几乎立即被操作系统终止,抛出任何错误/异常。我只是调用onPause(),然后是onDestroy(),那就是它。后台服务继续运行,但主要活动已经消失,并且有机会与用户进行交互。

有没有人知道为什么它会表现出这种行为以及我如何抑制或解决它?

更新:如果我在清单中设置android:launchMode="singleInstance",则应用程序会按预期运行一致。在我的具体案例中,这解决了问题,但我仍然不了解一般行为。

0 个答案:

没有答案