Android:显示消息的时间不到2秒

时间:2013-01-01 13:11:22

标签: android notifications toast duration

我想显示自定义时间的消息或通知,在这种情况下不到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);
   }
};

你的任何想法都会有所帮助。 :)

新年快乐

克里斯

1 个答案:

答案 0 :(得分:3)

正如您已经提到的,Toast的持续时间只能设置为Toast.LENGTH_SHORTToast.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);