网络线程,只要应用程序在屏幕上,就必须存在

时间:2011-04-21 11:37:13

标签: android lifecycle

在我的应用程序中,我必须连接到服务器,我在一个单独的线程中执行此操作,并且我希望只要我的应用程序的任何活动在屏幕上可见,连接就会保持活动状态。我还想要,如果用户离开我的应用程序,线程就会中断并且连接已关闭。

这里的主要问题是,如果用户旋转屏幕,则当前活动被破坏,我无法将这种情况与用户真正离开我的活动的情况区分开来。方法onRetainNonConfigurationInstance()不起作用,因为它是在onStop()之后调用的,我想在onStop()中关闭连接。

我也试过绑定服务,但问题完全一样,当我旋转屏幕时服务关闭。

我不想自己处理配置更改。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

我知道这与您不希望自己处理配置更改的声明相矛盾,但是如果添加

<activity android:name="org.example.Activity" android:configChanges="orientation|keyboardHidden"></activity>

到你的Manifest,不应该调用生命周期方法。如果不覆盖onConfigurationChanged()方法,则不需要从您的方面进行特殊处理,超级类将处理所有事情。

答案 1 :(得分:0)

onUserLeaveHint()方法可以解决问题。