xingya771
xingya771
2010-10-16 15:06
浏览 405

Activity被系统回收后打开的线程会不会一起被关闭回收?

现在是这样一个问题,整个程序就一个Activity,它接受GPS信息,第一次获取到位置的时候启动一个后台线程,该线程是包含UDP服务端和客户端,start之后除非调用自定义的方法exit()否则不会退出。而这个exit方法是在Activity的onDestroy()里面调用的。但是目前发现这样的一个问题,就是,按了home键之后,程序执行了onStop()方法,然后点击程序图标此时会执行onCreate()方法,而不是理想中的onStart()方法。这样再获取到位置之后就会报错,我想应该是Activity被系统回收导致重新create了一个,但是后台线程没有退出,导致端口冲突。
而且最郁闷的是按home键的行为并不是每次都一样的,一般开机第一次肯定会是按了home,再点就是onCreate(),以后随机……
用的机器是摩托的mt710,在模拟器上没有这样的问题,在华为U8220上也有类似问题。
现在我想解决这个问题,请问有没有好的办法呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • xxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxx 2010-10-18 13:19
    已采纳

    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar"
    android:debuggable="false"
    android:taskAffinity="android.task.xxxx">
    android:launchMode="singleTask"
    android:taskAffinity="android.task.xxxx"
    android:configChanges="orientation|keyboardHidden|navigation">





    上述是设置SingleTask的Activity,以及屏幕倒置(软件盘打)时不用重启动Activity.

    期望这个能帮助你。

    点赞 评论

相关推荐