我编写了一个 J2ME 应用程序,在其中实例化并在 MIDlet 构造函数中启动了线程。
【线程需要在MIDlet启动时启动,并且会在MIDlet的整个生命周期中持续运行】
现在我决定将该应用程序移植到 android 平台。并写了一个Activity类。
现在在Android中哪个地方最好实例化这个线程?
1)Android中的构造函数不是方式
2) OnCreate() 被多次调用。比如屏幕方向改变等。
3) 不能在事件中声明它
我编写了一个 J2ME 应用程序,在其中实例化并在 MIDlet 构造函数中启动了线程。
【线程需要在MIDlet启动时启动,并且会在MIDlet的整个生命周期中持续运行】
现在我决定将该应用程序移植到 android 平台。并写了一个Activity类。
现在在Android中哪个地方最好实例化这个线程?
1)Android中的构造函数不是方式
2) OnCreate() 被多次调用。比如屏幕方向改变等。
3) 不能在事件中声明它
取决于你需要在你的线程中做什么。
您可以在第一个 Activity 的 onCreate() 中实例化它,然后将其存储在静态(类)变量中。然后,如果您的 Activity 由于方向更改而被破坏并重新创建,onCreate()
您可以检查该变量是否仍指向活动线程,并根据需要实例化它或不实例化它。
另一种选择是在操作系统调用销毁您的活动之前返回对线程的引用onRetainNonConfigurationInstance()
(如果由于方向更改而要重新创建它)。操作系统重新创建您的活动后,onCreate()
您可以调用getLastNonConfigurationInstance()
以恢复线程。当操作系统销毁并重新创建它们时,这是一种在 Activity 实例之间传递长期存在的对象(如线程、连接等)的简单方法。
注意nonConfigurationInstance 的东西在 4.0 中被弃用了,你可以使用 Fragments 来做同样的事情。