Skip to content
Shine Chen edited this page Nov 8, 2019 · 1 revision

Apis

  • Get badge
int getBadge()
  • Load badge
void getBadge(IMRestCallback<Badge> callback)

Event

    // Register broadcast receiver
    this.registerReceiver(badgeBroadcastReceiver, new IntentFilter(IMKit.BROADCAST_ACTION_BADGE));

    ...

    BroadcastReceiver badgeBroadcastReceiver = new BroadcastReceiver() {

        private final String TAG = "BadgeBroadcastReceiver";

        @Override
        public void onReceive(final Context context, final Intent intent) {
            final PendingResult pendingResult = goAsync();

            AsyncTask<Void, Integer, Integer> asyncTask = new AsyncTask<Void, Integer, Integer>() {
                @Override
                protected Integer doInBackground(Void... params) {
                    StringBuilder sb = new StringBuilder();
                    sb.append("Action: " + intent.getAction() + "\n");

                    int badge = intent.getIntExtra(IMKit.BROADCAST_EXTRA_BADGE, 0);
                    sb.append("badge = " + badge);
                    IMKit.logD(TAG, sb.toString());
                    // Must call finish() so the BroadcastReceiver can be recycled.
                    pendingResult.finish();
                    return badge;
                }

                @Override
                protected void onPostExecute(Integer badge) {
                    IMKit.logD(TAG, "badge=" + badge);

                    // TODO: update UI
                }
            };
            if (BuildConfig.VERSION_CODE > Build.VERSION_CODES.HONEYCOMB) {
                asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
            } else {
                asyncTask.execute();
            }
        }
    };

Clone this wiki locally