从非ui线程启动和活动是否安全?

Mar*_*ark 20 android

假设我的活动ui-thread在某个时刻产生了一个单独的线程.新线程是否可以安全地启动Intent以启动新活动?

谢谢

And*_*ang 11

我可能是错的,但我认为startActivity()内部在UI线程中执行.所以是的,应该是安全的.

如果你想成为100%的把握,调用你startActivity()在你活动的runOnUiThread()作为Runnable.

  • 我检查了`startActivity()`的源代码,是的,它确实在主线程上运行,所以你可以安全地从后台调用它. (3认同)

Tim*_*mmm 6

前几行startActivityForResult()(由所有startActivity()变体使用)表明它没问题:

public void startActivityForResult(Intent intent, int requestCode, Bundle options) {
    if (mParent == null) {
        Instrumentation.ActivityResult ar =
            mInstrumentation.execStartActivity(
                this, mMainThread.getApplicationThread(), mToken, this,
                intent, requestCode, options);
Run Code Online (Sandbox Code Playgroud)