【问题标题】:Android : don't show Notification if app is shownAndroid:如果显示应用程序,则不显示通知
【发布时间】:2010-08-05 18:54:40
【问题描述】:

1/如果这个应用程序已经在前台运行我的应用程序,我不想通知用户,
在创建通知之前是否可以检查我的应用程序是否不在前面?

2/如果应用在后台,是否可以将最后一个状态放在前面?
我知道Os可以销毁一些Activity,但是是否可以恢复上一个状态,不要启动一个新的Intent?
因为如果我开始一个新的 Intent 并且我推回,旧的 Intent 看起来有 2 个相同的 Intent 启动不是很漂亮。

谢谢

NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
Intent notificationIntent = new Intent(this, z_finish.class);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Notification notification = new Notification(icon, tickerText, when);
notification.flags |= Notification.FLAG_AUTO_CANCEL;

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
final int HELLO_ID = 1;
mNotificationManager.notify(HELLO_ID, notification); 

【问题讨论】:

标签: android service background notifications android-service


【解决方案1】:

是否可以在创建通知之前检查我的应用是否不在前面?

您的活动必须在暂停和恢复时通知服务;然后服务可以决定是否显示Notification

如果应用程序在后台,是吗 可以把最后一个状态放在前面 ?

我不太确定“最后状态”是什么。在您的Intent 中尝试FLAG_ACTIVITY_CLEAR_TOP

【讨论】:

  • 所以在每个活动中,当调用 onPause 时,我在 getSharedPreferences 中存储一个变量(例如),并在调用 onResume 时再次修改我的变量,对吧?我想把应用程序放在前面,但不启动一个新的 Intent,我找到了怎么做,我启动了一个假 Activity 并完成,所以最后一个 Activity 放在前面。
  • 我也试过这个......制作一个只调用“完成”的假活动,将用户送回上一个活动。问题是,如果他们在退出应用程序之前按“返回”,他们就无法通过使用通知重新进入它(它只是自行关闭回到他们的主屏幕。)stackoverflow.com/questions/3568250/…
【解决方案2】:

如果您的应用处于单任务模式,那么即使您重新启动它也会保存最后的状态

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多