0

アプリケーションをバックグラウンドで実行できるようにしたくありません。ユーザーがAndroidデバイスのホームボタンを押すと、現在のアクティビティが終了するはずです。

または、申請が再開されたときに、申請が前面に出たことを知りたいのですが。

マニフェストファイルの<application>タグにレシーバーを作成しました。

<receiver
        android:name=".HomeKeyReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </receiver>

それでも、この受信者は呼び出されていません。このレシーバーが呼び出されたら、アプリケーションを閉じることができます。

4

4 に答える 4

1

私はこれのための方法が次のようなものであることを発見しました、

ユーザーがホームボタンを押すと、現在のアクティビティの一時停止メソッドが呼び出されます。

1秒のアクティビティがバックグラウンドで実行された後、他のアクティビティが開かれていない場合(グローバルブール変数を使用した場合)、メッセージをすべてのアクティビティにブロードキャストして閉じます。

したがって、開いているアクティビティは、そのレシーバーで閉じられます。

わたしにはできる。それがあなたにも役立つことを願っています。

于 2012-12-21T06:55:32.000 に答える
0
@Override
protected void onUserLeaveHint() {
    super.onUserLeaveHint();
    finish();
}

onPause()また、これは単一のアクティビティであるため、、、onStop()およびで作業できますonResume()

于 2012-09-21T09:25:46.157 に答える
0

onUserLeaveHint()クラスからチェックアウトActivity..ドキュメントによると

ユーザーの選択の結果としてアクティビティがバックグラウンドに移行しようとしているときに、アクティビティライフサイクルの一部として呼び出されます。

も参照してくださいonUserInteraction()

于 2012-09-21T09:28:57.557 に答える
0

アクティビティをバックグラウンドで実行せず、毎回再作成することだけを目的としている場合は、onStopメソッドをオーバーライドする必要があります。

enter code here

protected void onStop() {
    super.onStop();
    if (!isFinishing()) {
        finish();
    }
}
于 2012-09-21T09:31:26.260 に答える