Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检测是否添加了应用程序快速设置磁贴_Java_Android - Fatal编程技术网

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

Java 如何检测是否添加了应用程序快速设置磁贴,java,android,Java,Android,我按照本教程构建了QuickSettings互动程序: 到目前为止一切都很好,但现在我被困在这个问题上: 如果当前添加了互动程序,如何检测活动内部 我的第一次尝试是使用onTileAdded和onTileRemoved将其存储在一个文件中,但如果使用外部存储,则数据清除或用户编辑可能会失去同步 有没有安全的方法可以获取此信息?您可以在服务中使用静态变量: public class MyTileService extends TileService { public static boo

我按照本教程构建了QuickSettings互动程序:

到目前为止一切都很好,但现在我被困在这个问题上:

如果当前添加了互动程序,如何检测活动内部

我的第一次尝试是使用onTileAdded和onTileRemoved将其存储在一个文件中,但如果使用外部存储,则数据清除或用户编辑可能会失去同步


有没有安全的方法可以获取此信息?

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

public class MyTileService extends TileService {
    public static boolean isAdded = false;

    //...

    @Override
    public void onTileAdded() {
        isAdded = true;
    }

    @Override
    public void onTileRemoved() {
        isAdded = false;
    }
}
然后从活动中访问该变量

不幸的是,由于TileService已经覆盖onBind,因此无法使用活页夹按需获取值。作为静态变量的替代,考虑使用LoalBeldCaseMead在添加或删除时从TyeService发送一个广播。然后,您可以在活动中接收结果,并使用它更新其中的全局变量