0

AlarmManagerを使用してアラームをスケジュールしましたが、BroadcastReceiverが起動します。ブロードキャストレシーバー内で、アクティビティを呼び出してポップアップダイアログを作成します。

ここで重要なのは、ユーザーがどこにいても背景を確認し、アプリケーションを最初に前面に出さないようにすることです。次のコードを見てください。

Intent intent = new Intent(context, AlarmActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);

これが私が望まないことです:1。ユーザーが私のアプリケーションを見ています2.ユーザーがホームを押して他のアプリケーションにいます3.私のアプリケーションはまだバックグラウンドで実行されています4.アラームトリガー-> BroadcastReceiver- >上記のインテントが開始されます5.ユーザーは私のアプリケーションの最後のページと私のポップアップダイアログを見ています

代わりに、次のようにします。5.ユーザーは、使用しているアプリケーションを引き続き表示していますが、ポップアップダイアログが表示されます。

アプリケーションを前面に出さずにアクティビティを呼び出すにはどうすればよいですか?

4

1 に答える 1

0

Luksprog が言ったことは真実ですが、デフォルトのアラームでさえ、時刻がアラーム設定に対応するときに AlertDialog を表示します。このコードを、アラームの開始時に行うことを行う他のコードに入れることができます。

    public void alertBtn1 (View v){
        new AlertDialog.Builder(this)
            .setTitle("AlertDialog")
            .setMessage(R.string.text OR "YOURTEXTHERE")
    // If you want to the user to have multiple options, you can replace this
            .setNeutralButton("YOURTEXTHERE", null)
    // with this:               
            .setNeutralButton("YOURTEXTHERE", null)
            .setPositiveButton("YOURTEXTHERE", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
    // finish(); or whatever you like to happen when the user clicks the button.
                    finish();
                    }
                })
            .show();

    }
于 2012-04-22T17:29:54.443 に答える