Android 如何在活动和小部件之间共享数据和方法

Android 如何在活动和小部件之间共享数据和方法,android,android-widget,android-activity,Android,Android Widget,Android Activity,在我的Android项目中,我有一个活动和一个小部件(广播接收器)。两者都有一个简单的按钮。单击任一按钮时,应执行相同的操作: 首先,布尔变量应该设置为其相反的值(true到false,false到true)。此布尔值应独立于活动和接收者的生命周期进行存储。 然后,根据布尔值的旧状态,应该执行两种方法之一来查询SQLite数据库 我需要类似于单例活动的东西,它有自己的共享首选项和方法,可以从各种活动/接收者调用 实现这样的事情的最佳方式是什么?听起来你想做的任何事情都不需要活动。我只需要编写一个

在我的Android项目中,我有一个活动和一个小部件(广播接收器)。两者都有一个简单的按钮。单击任一按钮时,应执行相同的操作: 首先,布尔变量应该设置为其相反的值(true到false,false到true)。此布尔值应独立于活动和接收者的生命周期进行存储。 然后,根据布尔值的旧状态,应该执行两种方法之一来查询SQLite数据库

我需要类似于单例活动的东西,它有自己的共享首选项和方法,可以从各种活动/接收者调用


实现这样的事情的最佳方式是什么?

听起来你想做的任何事情都不需要活动。我只需要编写一个POJO单例,其中包含一个私有构造函数和一个静态getInstance()方法,该方法在初始化类本身的私有静态实例(如果需要)后返回对该实例的引用


然后,您可以使用一个实例方法来切换变量并触发AsycTask或其他任何查询操作。布尔值的状态可以存储在私有实例变量中,也可以持久化到SharedReferences,具体取决于需要保留多长时间。

什么是POJO单例?谷歌搜索刚刚给了我Java企业应用程序的搜索结果,但我还没有找到任何Android的参考资料。关于这个特定的想法并不是针对Android的。它只是一个从java.lang.Object继承的普通类,如第一个示例中所示:@RafaelBankosegger POJO代表普通的旧java对象