我目前正在启动接收广播提醒的对话框。我这样做是通过启动一个活动,立即打开一个对话框:
public class AlertReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context c, Intent i) {
Intent intent = new Intent(context, ReminderNotificationActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
. . .
public class ReminderNotificationActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
final ReminderNotificationDialog dialog = new ReminderNotificationDialog(this, reminder);
dialog.show();
}
. . .
然而,当我关闭对话框时:
ReminderNotificationDialog.this.dismiss();
parentActivity.finish();
我被带回到我在MY应用程序中访问的最后一个屏幕。而当我发布通知时,我想回到Android设备上的任何地方。 即使屏幕显示在另一个应用程序中。
e.g。如果我在Android主屏幕上然后返回那里。如果我在Chrome浏览通知时浏览网页,那么返回那里。如果我在某个页面上的自己的应用程序中,那么返回那里。
任何帮助都将不胜感激。
答案 0 :(得分:0)
几乎通过玩弄意图标志来解决这个问题。
如果我从FLAG_ACTIVITY_CLEAR_TASK标志开始,当我在我的活动上调用finish()时,前一个应用程序将被带到前台。
即。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
然而,这种方法失败了,如果我在我自己的应用程序中,当通知触发时,当我关闭对话框时,我将被带回主屏幕。最好是我会被带回到我自己的应用程序的任何地方。