0

正如我所看到的,Android 不会等待在 setContentView(...) 之类的句子之前执行所有句子。

例如,我不能这样做:

    Calendar c = Calendar.getInstance();
    int seg = c.get(Calendar.SECOND);
    int min = c.get(Calendar.MINUTE);
    int sum = 1;
    for (int i = seg; i < 5 + seg; i++){
        for(int j = min; j < 10000+ min; j++){
            seg = c.get(Calendar.SECOND);
            sum += seg;
        }
        Toast.makeText(getApplicationContext(), Integer.toString(sum), Toast.LENGTH_SHORT).show();

    }

    setContentView(R.layout.results);

Android 在计算完成之前执行 setContentView。我怎么能做到之前的Android等待语句?

4

1 回答 1

1

在 UI 线程上运行指定的操作。如果当前线程是 UI 线程,则立即执行该操作。如果当前线程不是 UI 线程,则将动作发布到 UI 线程的事件队列中。

有关 runOnUiThread 的更多信息,请查看http://developer.android.com/reference/android/app/Activity.html#runOnUiThread%28java.lang.Runnable%29

只需将您的代码放入

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        //put code here 

    }
于 2015-12-17T07:13:19.607 回答