我已使用this solution为我的应用图标添加徽章计数器。我正在使用计数器显示应用程序的queue_table
中有多少项等待发送到服务器。
首先,我创建了一个MyBootReceiver
类,用于在设备启动时更新徽章计数。这部分工作正常。
我需要建议的部分是在更新队列时保持徽章计数更新的正确方法。 (队列可以由应用程序的各个组件更新 - 例如,从用户手动将项目添加到队列以及从MyIntentService
将排队的项目发送到服务器。“
我的queue_table
可通过应用中的ContentProvider
访问,因此我基本上需要了解的是监控此内容提供商进行更改的最佳方式(因此徽章图标可以相应更新)
我想知道最佳(或唯一)解决方案是否适合我创建一个MyApplication
类,在ContentObserver
方法中注册onCreate
- 例如,
MyApplication.java
@Override
public void onCreate() {
super.onCreate();
/*
* Register for changes in queue_table, so the app's badge number can be updated in MyObserver#onChange()
*/
Context context = getApplicationContext();
ContentResolver cr = context.getContentResolver();
boolean notifyForDescendents = true;
myObserver = new MyObserver(new Handler(), context);
cr.registerContentObserver(myContentProviderUri, notifyForDescendents, myObserver);
}
此外,如果我使用这样的解决方案,我是否需要担心取消注册myObserver
,如果是,我将如何在MyApplication
中执行此操作?