J2ME到Android端口|如何处理线程?

时间:2012-05-20 18:20:42

标签: android multithreading java-me midp

我写了一个J2ME应用程序,我在其中实例化并启动了MIDlet构造函数中的Thread [线程需要在Midlet启动时启动,并将在MIDlet的整个生命周期中继续运行]

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

现在在Android哪个地方最好实例化这个帖子?

1)Android中的构造函数不是

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

3)无法在事件上声明它

1 个答案:

答案 0 :(得分:0)

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

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

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

注意在4.0中不推荐使用nonConfigurationInstance,你可以使用Fragments做同样的事情。