我尝试了here的答案,但是无法完成一项活动。
这是代码:
private void myMethod() {
startActivity(startNewActivityOpen2);
GlobalVars.questionHolders = null; //is being called.
finish();
amTransitioning = true;
}
呼叫活动已通过以下标志开始:
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
我尝试了
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK);
但这没用。
我可以看到终点线正在被调用。我的日志猫在说:
ActivityRecord {426f37f8 u0 com.assistek.ediary / .PRO_GridOther t5569 f}的重复完成请求
该活动将继续进行并没有完成,并且由于单例值已被清除,我得到了空指针错误。
答案 0 :(得分:1)
finish();不会以您认为活动继续执行finish()之后调用的任何代码的方式终止活动,您应该编写“ return;”。完成后避免执行任何代码
答案 1 :(得分:0)
我想您希望amTransitioning
是true
,所以您必须在完成Activity
之前先调用它。
我可以看到终点线正在被调用。我的日志猫在说:
您是否以其他方法完成Activity
?如果这样做,这就是Logcat
上的消息。如果要避免出现此消息,请在完成之前添加YOURACTIVITY.isFinishing()
(如果确实如此),请不要添加,否则请完成()。