有时在处理程序中添加Toast在活动或内部片段中不可见

时间:2017-06-06 09:04:54

标签: android toast

要求是toast将在片段中显示一些延迟,因此在处理程序内添加。 但有时吐司是不可见的。在吐司之前有一些加载器操作和片段事务操作。

final Handler handler = new Handler(getMainLooper());
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //Do something after 100ms\
        Toast.makeText(getActivity,message,Toast.LENGTH_SHORT).show();

        }
    }, 100);

2 个答案:

答案 0 :(得分:1)

您可以使用Handler,Timer Task,CountDownTimer以及使用for循环来实现此目的。我最喜欢的是CountDownTimer,这是一个非常简单快速的解决方案。

    private long duration = 30000; // 30 seconds
    private long interval = 1000; // 1 seconds

    CountDownTimer cd = new CountDownTimer(duration, interval) {
        @Override
        public void onTick(long l) {
          // This method call every seconds.
        }

        @Override
        public void onFinish() {
          // When 30 seconds completed this method is called.
            Toast.makeText(Activity.this, "Hello", Toast.LENGTH_SHORT).show();
        }
    };
    cd.start();

您可以根据需要更改持续时间和间隔。

答案 1 :(得分:0)

使用日志标记。

final Handler handler = new Handler(getMainLooper());
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        //Do something after 100ms\
        Log.d("MyLogTag", message);
    }
}, 100);