我想显示自定义时间的消息或通知,在这种情况下不到2秒。
我尝试了两种方法,它们都没有真正有用:
1.通过Toast显示消息并通过LENGTH_SHORT
设置持续时间,显然定义了2秒的硬编码持续时间。 - >失败
2.使用NotificationCompat.Builder
例程创建SetTicker
并在一定时间后取消通知。 - >通知(我并不是真的需要)在给定时间后消失,但不幸的是,该通知保持更长时间。 :(
private void SetNotification(CharSequence aCharSeq)
{
Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),
m_RandNotificationID, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setTicker(aCharSeq)
.setContentTitle(aCharSeq).setContentText(aCharSeq).setSmallIcon(R.drawable.sound)
.setContentIntent(contentIntent);
Notification noti = builder.build();
m_NotMan.notify(m_RandNotificationID, noti);
new Timer().schedule(CancelAction, 1000L);
}
TimerTask CancelAction = new TimerTask()
{
public void run()
{
m_NotMan.cancel(m_RandNotificationID);
}
};
你的任何想法都会有所帮助。 :)
新年快乐克里斯
答案 0 :(得分:3)
正如您已经提到的,Toast
的持续时间只能设置为Toast.LENGTH_SHORT
和Toast.LENGTH_LONG
。但是,通过使用Toast
提前取消它,例如1秒后,可以显示短于2秒的Handler
。
final Toast toast = Toast.makeText(this, "Example Toast",
Toast.LENGTH_SHORT);
toast.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 1000);