我的活动的 onResume() 从启动它的 Intent 中读取一些“额外”数据并相应地更新 UI。
我想添加错误处理:如果 Intent 中的数据丢失/损坏,则活动显示 Toast 并完成。
我可以简单地在 onResume() 方法中调用 finish() 吗?考虑到两者都与生命周期有关,我担心一些意想不到的事情。
如果还有其他更好的方法,我也对这些感兴趣,但上面似乎最简单。
谢谢!
我的活动的 onResume() 从启动它的 Intent 中读取一些“额外”数据并相应地更新 UI。
我想添加错误处理:如果 Intent 中的数据丢失/损坏,则活动显示 Toast 并完成。
我可以简单地在 onResume() 方法中调用 finish() 吗?考虑到两者都与生命周期有关,我担心一些意想不到的事情。
如果还有其他更好的方法,我也对这些感兴趣,但上面似乎最简单。
谢谢!
Activity 可以随时通过调用 finish() 自行终止,而不会产生任何不利影响。
显然,您必须确保在调用 finish() 之前保存了所有必需的设置/数据,但这不言而喻,完全是您的责任,具体取决于您的 Activity 设计。
打电话应该没问题finish()
。onResume()
但是为什么你在中onResume()
而不是在中进行错误处理onCreate()
呢?
finish()
直接从或调用时onActivityResult()
,我遇到了不可预知的结果。这是在带有库存 Android 4.4.2 的 Nexus 7 上。onResume()
onPostResume()
我找到的解决方案是finish()
稍后使用Runnable
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
setResult(RESULT_OK);
finish();
}
});
}
}