我有以下代码:

    mQuestions=DictionaryDbWrapper.getInstance().getQuestionsSequence(
            this.getIntent().getStringExtra(ApplicationUtilities.TEST_CATEGORY_PARAMETER), 50);
    mQuestionsCount=mQuestions.size();
    Log.e("count", String.valueOf(mQuestionsCount));
    if (mQuestionsCount==0) {
        Log.e("1", "111");
        Toast.makeText(this, "В данной категории нет слов", Toast.LENGTH_LONG).show();
        this.finish();
    }

    makeQuestion();
mQuestions是空的ArrayList,并且我看到logt上的count始终等于0。我也总是在我的日志中看到1/111记录。但是我的 Activity 没有执行完成方法!
makeQuestion是不需要与空mQuestion一起使用的方法(它会引发Exception)。但是,如果我对makeQuestion进行注释,那么finish方法效果很好!此代码的方法在主线程上起作用(它是从onCreate()方法执行的)。

请提出我要去哪里的问题。

提前致谢。

最佳答案

finish()函数是非阻塞的,这意味着当 Activity 在后台完成时,执行将继续。

要解决您的问题,请在finish()调用之后添加return语句。

关于java - 为什么这个 Activity 没有结束?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9046332/

10-10 18:01