我的活动Activity1
以Activity2
startActivityForResult(..)
在Activity2
我有一个调用AsyncTask的保存按钮,在onSuccess
我将活动返回,一切正常。
但是,如果用户未单击save
按钮而是单击后退按钮,则会出现如下错误:
android.util.SuperNotCalledException: Activity {com.myapp.mobile/com.myapp.mobile.ui.activity.Activity2} did not call through to super.onDestroy()
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3467)
以下是我的示例代码:
在Activity1中
Intent intent=new Intent(Activity.this,Activity2.class);
startActivityForResult(intent, 2);
.....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==2) {
//do some stuff here
}
}
活动2中的
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() == android.R.id.home) {
finish();
return true;
}
if (menuItem.getTitle().toString().equalsIgnoreCase("Save")) {
new MyAsyncTask(this, intent, someData).execute();
}
return true;
}
问题
我该如何解决这个问题?如何让用户点击(home
)而不是杀死我的应用?
答案 0 :(得分:2)
您认为onDestroy()
中已覆盖Activity2
方法,但未在此处调用super.onDestroy()
。