1

我想知道如果我要离开Activity. 查看下面的示例,我可以看到Runnablein a separateThread正在执行,即使我在另一个Activity. 但是什么时候会被杀死呢?

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        runTask();
        startActivity(new Intent(this, SecondActivity.class));
    }

    private void runTask() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    Log.i("Dev", "here I am");
                    SystemClock.sleep(1000);
                }
            }
        }).start();
    }
}
4

2 回答 2

0

java.lang.ThreadAndroid UI 组件生命周期无关,因此就像在普通 JVM 中一样,它会一直运行直到其run()方法返回……除非Android 在此之前终止您的整个应用程序进程,如果您的应用程序在背景和另一个应用程序需要 RAM。

顺便说一句,由于线程与 UI 组件生命周期无关,因此您不能简单地从该线程调用另一个 UI 组件。Handler如果您想返回 UI,您必须发布或发布广播或其他内容,但您可能已经知道这一点。

最后,在您的示例代码中,Thread实例(通过匿名Runnable)将防止封闭的 Activity 类被垃圾收集,因此您可能需要重新考虑该构造。

Activity如果您想做不与任何单一IntentService.

于 2013-04-30T19:59:29.750 回答
-1

您可以调用Interrupt()它将为您的线程发布中断请求。

http://developer.android.com/reference/java/lang/Thread.html

于 2013-04-30T19:57:31.783 回答