在Android活动上调用finish()实际上并没有完成
我叫finish()
但我的活动继续进行。
我有一个活动是由主活动屏幕上的菜单调用的。 在我的activity的onCreate()
方法中,我有下面的代码片段:
// Make sure there are some events in the list. if (theEventArrayList.isEmpty()){ Toast.makeText(this, "Event List is empty", Toast.LENGTH_LONG).show(); finish(); } SummarizeCurrentEvent(); graphEvents();
如果列表为空,则放置Toast,并且可以在调用finish()
设置断点。 如果我从debugging器中直接进入SummarizeCurrentEvent()
。 我认为finish()
会退出活动。 不是这样吗? 我在哪里可以find更多有关这种方法的信息?
在finish
之后,您应该放置一个return
语句,因为调用finish
的方法将被完全执行。
另外,看到这个问题: 关于完成()在Android
finish()只是告诉活动完成它需要做的事情,例如。 closures,调用onPause,报告结果给父母等。它不会做一个exit()调用或任何东西。
完成()调用后应该返回。
添加到其他答案,你仍然可能有(Re)onStart
, onResume
和onPause
调用。
我这样说是因为在下面的链接中有一个表格,表示对于一个要被杀死的活动,首先在Stop和onDestroy上的onPause(可能但不是保证)调用它。
参考活动
完成完成活动,但是取决于执行任何UI交互的主循环。 你必须等到UI循环运行,这是从onCreate
返回后。
这是应该使用try...catch
语句的情况。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { //...some initialization... // Make sure there are some events in the list. if (theEventArrayList.isEmpty()){ throw new Exception("Event List is empty"); } SummarizeCurrentEvent(); graphEvents(); } catch (Exception e) { Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); finish(); } }