0

完了ボタンがあるステータスバー通知のクリックで1つのアクティビティを呼び出しています。ボタンのクリックで。私は次のコードを持っています -

public void completeTask(){
        taskDBAdapter.deleteReminder(rowId);
        taskDBAdapter.close();
        Intent intent = new Intent(this, TaskManagerActivity.class);
        startActivity(intent);
        finish();

    }

完全な btn をクリックすると、新しいアクティビティ (TaskManagerActivity) が適切に開かれます。ただし、アプリケーションを再度開くと、デフォルトのランディング アクティビティではなく、このアクティビティを開こうとします。これに関するヘルプ.??

編集 -

finish() ステートメントの位置を変更してみました。それでも機能しません。

EDIT 1.1 - ここでいくつかの詳細を提供します。アプリに 2 つのアクティビティがあるとします

  1. 主な活動
  2. 通知活動

私のアプリは、ステータスバーに表示する通知を作成します。そのため、ステータスバーをクリックするとすぐに通知アクティビティが開きます。これで、指定されたコードが起動し、(コード TaskManagerActivity.class 内の) メイン アクティビティが開く、クリックすると完了というボタンがあります。しかし、アプリの戻るボタンを押して再度開くと、メインアクティビティを起動する必要があるときに通知アクティビティが開きます(起動アクティビティであるため)。

ありがとう、レイ

4

2 に答える 2

2

これが Android のデフォルトの機能です。ホーム ボタンを押してアプリを再度開くと、アプリの以前の状態が復元されます (メモリの制約によりアプリのプロセスとアクティビティが強制終了された場合を除く)。したがって、実際にアプリを再起動するのではなく、復元するだけです。

アプリを終了したい場合は、戻るボタンを押してください。アプリを再度開くと、元のアクティビティが開始されます。

この動作を変更しないでください。これはデフォルトのシステム動作であり、ユーザーはこのように動作することを期待しています。あなたのアプリは大丈夫です:-)

于 2012-11-18T14:43:52.387 に答える
0

-まず第一に、あなたが経験している動作は、Android が機能するように作られている方法です。さらに、このアプリが開いている間にユーザーが電話を受けると、アプリを終了した後、彼は間違いなく彼が離れた状態に戻りたいと思うでしょう。応用。

それでもそのようにしたい場合は、ここにあります.....

-android:launchMode="singleTask"または_ android:launchMode="singleInstance"

-次にfinish()、 でのアクティビティonPause()

@Override
void onPause()
    {
    super.onPause();
    finish();
    }
于 2012-11-18T14:57:46.920 に答える