【问题标题】:Notification like Toast but with longer duration类似 Toast 的通知,但持续时间更长
【发布时间】:2014-11-20 10:40:39
【问题描述】:

我必须创建一个类似于 android toast 通知的通知,但我需要将它从服务中抛出,并且我需要在需要时将其关闭。 标准的 toast 通知会很完美,但是太短了。

我尝试使用 DialogFragment,但它占据了焦点(不像 toast),我无法将其从服务中抛出,而只能从 FragmentActivity 中抛出。

谢谢!!

【问题讨论】:

标签: java android notifications toast duration


【解决方案1】:
            Toast toast = new Toast(this);
            TextView textView=new TextView(this);
            textView.setTextColor(Color.BLUE);
            textView.setBackgroundColor(Color.TRANSPARENT);
            textView.setTextSize(20);
            textView.setText("My Toast For Long Time");
            toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

            toast.setView(textView);

          timer =new CountDownTimer(20000, 1000)
            {
                public void onTick(long millisUntilFinished)
                {
                    toast.show();
                }
                public void onFinish()
                {
                    toast.cancel();
                }

            }.start();

【讨论】:

    【解决方案2】:

    在 SO 中快速搜索,您可以找到 Toast durations

    private static final int LONG_DELAY = 3500; // 3.5 seconds
    private static final int SHORT_DELAY = 2000; // 2 seconds
    

    现在您可以一个接一个地显示多个 Toast,使其看起来具有更长的持续时间:

    final String msg = "Some text";
    Runnable delayedToast = new Runnable() {
        @Override
        public void run() {
            Toast.makeText(ctx, msg, Toast.LENGTH_LONG).show();
        }
    };
    
    Toast.makeText(ctx, msg, Toast.LENGTH_LONG).show(); 
    mHandler.postDelayed(delayedToast, 3000);
    mHandler.postDelayed(delayedToast, 6000);
    

    ctx 是您的活动/应用程序上下文,mHandler 是 UI 线程上的处理程序。持续时间应该在3000+3000+3500左右。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-11
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多