【发布时间】:2014-09-21 13:58:13
【问题描述】:
编辑:我发现我在下面描述的内容仅发生在我的模拟设备(Nexus 5、目标 api 19、4.4.2 和 Intel Atom (x86) cpu)上,但不在我的物理设备上(HTC一)....
EDIT2:Edit1 是由于我没有捕捉到的 IllegalStateException 引起的。添加了一些代码以在尝试启动线程之前检查线程是否已经在运行。这与接受的答案相结合解决了我的问题。
我已经实现了一个 Activity,它在 Activity 的 onCreate 方法中启动一个新线程,如下所示:
...
private boolean running;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
running = true;
new Thread(null, work, "myThread").start();
}
Runnable work = new Runnable() {
@Override
public void run() {
while (running) {
//Doing work
}
}
};
我正在使用我的活动的 onPause 方法“暂停”我的线程,如下所示:
@Override
protected void onPause() {
running = false;
super.onPause();
}
所以我认为恢复它会很容易......¨
@Override
protected void onResume(){
running = true;
super.onResume();
}
但我的线程没有恢复。任何想法为什么?感谢您的帮助。
马库斯
【问题讨论】:
标签: android multithreading android-activity