1

我编写了一个 J2ME 应用程序,在其中实例化并在 MIDlet 构造函数中启动了线程。
【线程需要在MIDlet启动时启动,并且会在MIDlet的整个生命周期中持续运行】

现在我决定将该应用程序移植到 android 平台。并写了一个Activity类。

现在在Android中哪个地方最好实例化这个线程?

1)Android中的构造函数不是方式

2) OnCreate() 被多次调用。比如屏幕方向改变等。

3) 不能在事件中声明它

4

1 回答 1

0

取决于你需要在你的线程中做什么。

可以在第一个 Activity 的 onCreate() 中实例化它,然后将其存储在静态(类)变量中。然后,如果您的 Activity 由于方向更改而被破坏并重新创建,onCreate()您可以检查该变量是否仍指向活动线程,并根据需要实例化它或不实例化它。

另一种选择是在操作系统调用销毁您的活动之前返回对线程的引用onRetainNonConfigurationInstance()(如果由于方向更改而要重新创建它)。操作系统重新创建您的活动后,onCreate()您可以调用getLastNonConfigurationInstance()以恢复线程。当操作系统销毁并重新创建它们时,这是一种在 Activity 实例之间传递长期存在的对象(如线程、连接等)的简单方法。

注意nonConfigurationInstance 的东西在 4.0 中被弃用了,你可以使用 Fragments 来做同样的事情。

于 2012-05-24T10:46:52.963 回答