-
Notifications
You must be signed in to change notification settings - Fork 1
Badge
Shine Chen edited this page Nov 8, 2019
·
1 revision
- Get badge
int getBadge()- Load badge
void getBadge(IMRestCallback<Badge> callback) // 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();
}
}
};