2011-05-06 104 views
2

我有一个监视状态的服务,当遇到一个特定的状态时,我需要通知用户(无论他们在使用哪个Activity,或者如果他们甚至使用该应用程序)。是否可以从我的Android应用程序中调用AlertDialog?

目前我正在从我的应用程序发送一个Toast(这很奇怪,只有一些时间在xoom上工作(尚未在其他设备上测试过)),但是当我尝试从应用程序中启动AlertDialog ,应用程序崩溃

因此...警报唤醒和呼叫等待意图启动服务,检查一些东西,如果条件是正确的调用应用程序显示通知我知道我可以在我的广播接收器设置应用程序,但重要的是让用户实际上点击“确定”通知,即使他们现在不在应用程序中,另外,在每个活动中设置广播侦听器也很麻烦,因为此过程不特别与任何活动联系在一起

这是非法操纵吗?如果不是,我应该寻找什么作为坠机的罪魁祸首?我忽略了一些特别许可吗?

+0

我认为broadcastreceiver是一种可行的方式 - 我不认为在每个活动中都需要一个活动 - 只有一个在对话主题活动中处理通知并显示ack按钮。 – jkhouw1 2011-05-07 00:25:17

+0

对......正如我刚才对MisterSquonk所说的那样,下面......我完全忘记了我可以开展一项主题活动,我可以从中调出来。当然是 – 2011-05-07 00:49:25

回答

1

这是非法操纵吗?

不是非法的,但它可以被视为“用户敌对”。

假设我在游戏中的一个棘手部分,我即将完成一个特别困难的级别......并且您的对话框出现并阻止我的游戏直到我点击“确定”?在您的应用程序从我的设备上卸载之前,您认为它会持续多久?该死的很快。你的建议听起来像一个系统模式对话,这有效地等同于劫持设备。

在自己的应用程序中使用模态对话框即可,也就是说,当用户实际使用您的某个活动时,但其他时间可接受的方法是使用通知。但是,如果你决定采用这种方法,我建议你使用带有对话框主题的活动。而不是使用直接方法来创建类似AlertDialog的东西,只需使用Intent触发活动即可。

+0

! DUH!有时候你会被这样的细节所包裹,以至于忘记了事物的真实面貌。您的担忧是完全有效的,但关于用户的不便,在这种情况下,这是一个自定义应用程序,它将在专门用于自定义目的的自定义设备上运行......所以任何游戏都是......好。 ..让我们只是说客户会恼火,有人会在他们的镍上玩游戏:) – 2011-05-07 00:47:20

+0

@ Dr.Dredel:我想知道它是否可能是一个公司应用程序,在这一点上它可能更容易接受,但如果设备需要用于其他目的,显然考虑到这一点很重要。顺便说一句,我个人不会在我的设备上玩游戏。虽然有用的例子。 :d – Squonk 2011-05-07 01:11:44

相关问题