我有以下代码:
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,我看到count
总是等于0。我也总是在我的日志中看到1/111
记录。但我的活动没有做完成方法!
makeQuestion
是不需要使用空mQuestion
的方法(它抛出异常)。但是,如果我对makeQuestion
发表评论,则finish
方法效果很好!此代码的方法适用于主线程(它从onCreate()
方法执行)。
请告诉我出错的地方。
提前致谢。
答案 0 :(得分:4)
finish()函数是非阻塞的,这意味着当活动在后台完成时执行将继续。
要解决您的问题,请在完成()调用后添加一个return语句。
答案 1 :(得分:1)
我很确定调用finish()
没有调用return
的类似阻止效果。
根据您的代码,您假设finish()
具有与return
相同的阻止效果。
试试这个:
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();
}
else {
makeQuestion();
}