为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2021-12-01 19:03:05
我按照本教程构建了一个 QuickSettings Tile:https : //codelabs.developers.google.com/codelabs/android-n-quick-settings/#0到目前为止一切都很好,但现在我坚持这一点:我如何检测(在活动中)当前是否添加了磁贴?我的第一次尝试是将其存储在一个文件中(使用onTileAdded和onTileRemoved),但这可能会不同步(如果使用外部存储,则可能是“数据清除”或用户编辑)。有没有一种安全的方法可以获得这些信息?
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您可以在服务中使用静态变量:


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 发送广播。然后您可以在您的活动中接收结果并使用它来更新那里的全局变量。


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信