【问题标题】:Display a popup from background service in android在android中显示来自后台服务的弹出窗口
【发布时间】:2016-06-03 06:57:00
【问题描述】:

这是我正在开发的应用程序的一个用例。有一个后台服务运行并扫描来自信标的信号,当注册特定事件时,即使应用程序未在前台运行,它也应该向用户显示一个弹出窗口。弹出窗口应该可以从屏幕本身关闭。

如果除了弹出窗口之外还有其他首选方式,请引导我找到来源。

@Override
public void onEvent(BluetoothDeviceEvent event) {
  //This event is working and displaying the notifications
  Utilities.buildNotification();
}

谢谢。

【问题讨论】:

  • 无法在服务中创建对话框。更好地在活动中导航并使用那里的活动上下文显示dailog
  • 你应该注册来自活动的广播并从服务发送结果回BR,并在onReceive方法中显示你的对话框。
  • 感谢您的回答。我对Android开发很陌生。您能指导我了解一些可以了解更多信息的指南吗?
  • 为什么不简单地使用通知?它可以完成您想要的一切(除了作为对话框),并且您的方法已经建议您使用它。
  • 不,它不能。如果您想要全屏,您可能希望直接从服务启动一个活动。添加“Intent.FLAG_ACTIVITY_NEW_TASK”启动 Activity 的 Intent,每次收到事件时它都应该弹出。但人们往往讨厌那些随机生成脱离上下文的活动的应用程序。我不会向公众发布具有这种解决方案的应用程序。但这只是我的看法。

标签: java android service popupwindow


【解决方案1】:

您的问题陈述可以使用小部件来解决。

小部件是主屏幕自定义的重要方面。您可以将它们想象为应用程序最重要数据和功能的“一目了然”视图,可直接从用户的主屏幕访问。用户可以在他们的主屏幕面板上移动小部件,如果支持,可以调整它们的大小以根据自己的喜好调整小部件中的信息量....more on android developer site here

这是很好的示例教程 Sample Android widget tutorial

【讨论】:

  • 你确定吗?
  • 问题声明说“有一个后台服务运行并扫描来自信标的信号,当注册特定事件时,即使应用程序未运行,它也应该向用户显示一个弹出窗口在前台。弹出窗口应该可以从屏幕本身关闭。”......通知是一种做事的方式,但我觉得小部件在 UI 方面提供了更多处理......但是我只是假设交互级别相当复杂。
  • 小部件不是我要找的。我希望做的事情类似于可以从主屏幕本身关闭的活动。不管怎么说,还是要谢谢你。 :)
猜你喜欢
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多