0

我已经使用 AlarmManager 安排了一个警报,它会触发一个 BroadcastReceiver。在广播接收器内部,我想调用一个 Activity 并创建一个弹出对话框。

这里重要的是我想查看用户所在位置的背景,而不是先将我的应用程序放在前面。看看下面的代码:

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 回答