如何检测是否添加了应用程序快速设置磁贴

我按照本教程构建了一个 QuickSettings Tile:https : //codelabs.developers.google.com/codelabs/android-n-quick-settings/#0

到目前为止一切都很好,但现在我坚持这一点:

我如何检测(在活动中)当前是否添加了磁贴?

我的第一次尝试是将其存储在一个文件中(使用onTileAddedonTileRemoved),但这可能会不同步(如果使用外部存储,则可能是“数据清除”或用户编辑)。

有没有一种安全的方法可以获得这些信息?


沧海一幻觉
浏览 145回答 1
1回答

侃侃尔雅

您可以在服务中使用静态变量:public class MyTileService extends TileService {    public static boolean isAdded = false;    //...    @Override    public void onTileAdded() {        isAdded = true;    }    @Override    public void onTileRemoved() {        isAdded = false;    }}然后只需从您的活动中访问该变量。不幸的是,由于 TileServices 已经覆盖,onBind()您不能使用 Binder 来按需获取值。作为静态变量的替代方案,请考虑使用 LocalBroadcastManager 在添加或删除 TileService 时从 TileService 发送广播。然后您可以在您的活动中接收结果并使用它来更新那里的全局变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java