我有一个通知生成器。我想添加通知计时器,例如 whatsapp 调用通知。所以如果我调用 updateNotifTime 函数,是行不通的。
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, callChannelId)
.setSmallIcon(R.drawable.call_icon)
.setContentIntent(pendingIntent)
.setOngoing(true)
.setShowWhen(true)
.setWhen(System.currentTimeMillis())
.setPriority(NotificationCompat.PRIORITY_HIGH);
public void updateNotifTime() {
this.callingElapsedRunnable = new Runnable() {
@Override
public void run() {
elapsedTime += 1000;
String timer = DateUtils.calculateTime(elapsedTime);
builder.setWhen(elapsedTime);
callingElapsedHandler.postDelayed(this, 1000);
}
};
callingElapsedHandler.postDelayed(callingElapsedRunnable, 1000);
}
我为 <5.0 sdk 版本添加了自定义布局:
<5.0
public void startChronometer(String elapsedTime) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP && builder != null) {
RemoteViews mContentView = new RemoteViews(context.getPackageName(), R.layout.call_notification);
//timerTxt
TextView timerTxt = new TextView(context);
timerTxt.setId(R.id.timerTxt);
//callTypeTxt
TextView callTypeTxt = new TextView(context);
callTypeTxt.setId(R.id.callType);
//calleeNameTxt
TextView calleeNameTxt = new TextView(context);
calleeNameTxt.setId(R.id.calleeName);
mContentView.setTextViewText(timerTxt.getId(), elapsedTime);
mContentView.setTextViewText(callTypeTxt.getId(), context.getString(R.string.call_in_progress));
builder.setCustomBigContentView(mContentView);
notificationManager.notify(CALL_NOTIFICATION_ID, builder.build());
}
}
其他版本
builder.setUsesChronometer(true);
@Kishore Jethava 问题:
Intent intent = new Intent(mContext, YourActivity.class);
intent.putExtra("tappedTime", System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, (int) System.currentTimeMillis(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
关于android - 如何添加通知计时器,例如 whatsapp 调用通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47258904/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://www.ogeek.cn/) | Powered by Discuz! X3.4 |