我已使用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.用户现在正在查看MY应用程序的最后一页和我的弹出对话框
我想要的是: 5.用户仍在查看他们所在的应用程序,但他们现在有弹出对话框。
如何在不将我的应用程序带到前面的情况下调用该活动?
答案 0 :(得分: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();
}