在我的 Android 项目中,我有 2 个活动。一个是MyProject
,另一个是MyProjectOutput
。
在MyProject
中,有一个 button( btnProcess
),它会做一些处理并使用以下代码启动第二个活动:
btnProcess.setEnabled(false);
// does some network access in an AsyncTask and fetches some stuff, and store some data in the variable 'my_extra_content'
//...
Intent i = new Intent(this, MyProjectOutput.class);
i.putExtra("extracontent", my_extra_content);
startActivityForResult(i,1);
在第二个活动中,它有一个返回主活动的按钮(软件返回按钮)。代码是:
final Button btnBack = (Button) findViewById(R.id.btnBack);
btnBack.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//when Back button is pressed, it is cancelled
setResult(Activity.RESULT_CANCELED);
finish();
}
});
在主要活动中,我使用它来重新启用按钮:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
btnProcess.setEnabled(true);
}
我的程序在模拟器(AVD)中运行良好。我已经把这个送给了我的一个拥有 Android 设备的朋友。经过测试,他说工作正常,但是当从主活动按下后退按钮(硬件按钮)时,程序没有终止。还在记忆中!但是当我在 AVD 中测试时,当我从主活动中按下硬件返回按钮时,它会显示手机的主屏幕!
我正在使用诺基亚设备(准确地说是 5230)。而且我知道当我们按下“结束”按钮时,一些程序可能仍然驻留在内存中,我必须通过任务管理器手动关闭它。
所以,我对这个问题有点困惑!在使用两项活动时,我有什么需要注意的吗?