私の Android プロジェクトには、2 つのアクティビティがあります。1 つはMyProject
、もう 1 つは ですMyProjectOutput
。
にMyProject
は、button( btnProcess
) があり、いくつかの処理を行い、次のコードを使用して 2 番目のアクティビティを開始します。
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);
2 番目のアクティビティには、メイン アクティビティに戻るためのボタン (ソフトウェアの戻るボタン) があります。コードは次のとおりです。
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 デバイスを所有している友人の 1 人にこれを贈りました。そして、テストの後、彼は正常に動作すると言いましたが、メインアクティビティから戻るボタン (ハードウェアボタン) が押されたとき、プログラムは終了しません。まだ記憶にあります!しかし、AVD でテストしたところ、メイン アクティビティからハードウェアの [戻る] ボタンを押すと、電話のホーム画面が表示されました。
Nokia デバイス (正確には 5230) を使用しています。また、「終了」ボタンを押したときに、一部のプログラムがまだメモリに残っている可能性があることを知っています。これは、タスク マネージャーを介して手動で閉じる必要があります。
だから、私はこの問題で少し混乱しています! 2 つのアクティビティを使用する際に注意することはありますか?