Android 在BroadcastReceive()方法中创建Toast

Android 在BroadcastReceive()方法中创建Toast,android,broadcastreceiver,toast,Android,Broadcastreceiver,Toast,您可能知道,BroadcastReceiver类的onReceive()方法的文档说明: 当它在主线程上运行时,您不应该执行长时间运行 it中的操作(系统运行时超时10秒) 在考虑要阻止的接收器和候选者之前允许 被杀)。无法在实现中启动弹出对话框 onReceive()的 当我收到广播时,我想向用户显示一个Toast,但我不确定Toast是否被视为“弹出对话框”,或者只有类对话框中的对象才是它们所指的对象 我见过很多代码示例,其中Toast在这个函数中使用,但我不确定这是一种不好的做法还是对性能

您可能知道,BroadcastReceiver类的onReceive()方法的文档说明:

当它在主线程上运行时,您不应该执行长时间运行 it中的操作(系统运行时超时10秒) 在考虑要阻止的接收器和候选者之前允许 被杀)。无法在实现中启动弹出对话框 onReceive()的

当我收到广播时,我想向用户显示一个Toast,但我不确定Toast是否被视为“弹出对话框”,或者只有类对话框中的对象才是它们所指的对象

我见过很多代码示例,其中Toast在这个函数中使用,但我不确定这是一种不好的做法还是对性能有很大影响


我想知道的是,我是否应该在这个函数中创建Toast,如果不应该,我应该如何做(扩展Toast,然后使用意图调用它?)。

Toast不被视为弹出对话框。它被认为是一种通知方法,类似于通知栏中的通知。许多应用程序在广播接收机中使用它,包括我自己的。到目前为止,我还从未见过在任何设备上显示祝酒会对性能产生影响


您应该可以很好地显示来自广播接收器的祝酒词。

使用来自
广播接收器的
祝酒词是非常安全的

但是要小心,如果在应用程序的上下文之外显示
Toast
,则会被认为是侵入性的-如果从
广播接收器使用,可能会发生这种情况


要获得更好的用户体验,请使用。

只需将吐司放在onReceive()中,这样做不会有任何问题,不,这不是一种不好的做法。这取决于您需要与用户进行什么样的交互。