Android - 来自内容提供商的自动更新应用图标徽章计数器?

时间:2016-02-22 18:01:35

标签: android android-contentprovider contentobserver

我已使用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中执行此操作?

0 个答案:

没有答案