如何使用处理程序从线程中打开新活动

时间:2015-05-19 21:37:58

标签: java android multithreading handler

一开始,每件事情都运作良好,但我改变了一些事情,现在当我从一个线程(而不是UI线程)打开新活动时applcation崩溃。

安装后应用程序只在我的手机上崩溃,在调试模式下,由于某些我无法理解的原因,它运行良好。

这是我的经纪人:

handler = new Handler(Looper.getMainLooper());

// --- thread work function ---
public void OnLoseActivity()
{
    handler.post(new Runnable() {
        @Override
        public void run() {
            Intent myActivity= new Intent(mainActivity.this, newActivity.class);
            startActivity(myActivity);
        }
    });
}

我做错了什么?

在关闭第一个活动之前需要处理其他问题吗?

感谢

更新

我从一个线程中打开一个活动的原因是线程检查循环中的某些东西,如果它很好并且活动shuold打开。

我不习惯与处理程序一起工作,如果我正在做新事物,请向我解释。

正如我写的那样,在logcat中没有什么特别之处,因为在调试它工作正常

1 个答案:

答案 0 :(得分:0)

如果您在活动中运行此功能,请尝试此操作。将您的Intent放入方法中并在Runnable中调用该方法。

 new Handler().post(new Runnable() {
        @Override
        public void run() {
            startMyActivity();
        }
    });

并更改您的Runnable:

{{1}}