-1

私の 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 つのアクティビティを使用する際に注意することはありますか?

4

1 に答える 1

2

終了するはずがありません。これに関する多くの記事と質問がありました。Android 自体が、いつメモリからアクティビティを削除するかを決定します。これは、電話機のハードウェア仕様、メモリ使用率、およびその他の要因に基づいています。そのため、 End/Back を押しても、アプリケーションがメモリに残る場合とそうでない場合があります。Android で人気のタスク キラーを使用することは、非常に悪い考えです。

于 2012-05-08T18:09:40.953 に答える