【发布时间】:2014-09-21 23:00:45
【问题描述】:
我知道这是一个有很多答案的老问题,就像我发现的 here 一样。但我仍然看不到我的 toast 消息。
我尝试检查当前线程,例如:
Log.d("DEBUG", "Main Looper: " + Looper.getMainLooper().toString() + ", Current Looper: " + Looper.myLooper().toString());
Log.d("DEBUG", "Main Thread: " + Looper.getMainLooper().getThread().toString() + ", Current Thread: " + Thread.currentThread().toString());
//and the log is like:
D/DEBUG﹕ Main Looper: Looper{420a9e68}, Current Looper: Looper{420a9e68}
D/DEBUG﹕ Main Thread: Thread[main,5,main], Current Thread: Thread[main,5,main]
所以我认为我在主线程(ui线程)中,我还专门尝试在ui线程中吐司:
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getBaseContext(), "abc", Toast.LENGTH_LONG).show();
Log.d("DEBUG", "ui thread abc");
}
});
我可以看到日志“ui thread abc”,但 toast 仍然没有出现。
然后我想也许 toast 与其他视图重叠,所以我尝试指定 toast 的位置,例如: 吐司吐司 Toast.makeText(getBaseContext(), "abc", Toast.LENGTH_LONG);
Toast toast = Toast.makeText(this, "abc", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP|Gravity.CENTER, 0, 0);
toast.show();
仍然一无所获。那么你认为我的吐司发生了什么?
-------更新
我在一个带有垂直线性布局和几个嵌入式水平线性布局的活动中。 我现在只有两个活动,我正在为主要活动干杯。
我在 onclick 事件中使用自定义图像滑块和 toasting,onClickMethod 如下:
public void onSliderClick(BaseSliderView slider) {
// Log.d("DEBUG", "Main Looper: " + Looper.getMainLooper().toString() + ", Current Looper: " + Looper.myLooper().toString());
// Log.d("DEBUG", "Main Thread: " + Looper.getMainLooper().getThread().toString() + ", Current Thread: " + Thread.currentThread().toString());
// Toast.makeText(getBaseContext(), slider.getBundle().get("testMsg").toString(), Toast.LENGTH_LONG).show();
// Toast.makeText(getApplicationContext(), slider.getBundle().get("testMsg").toString(), Toast.LENGTH_LONG).show();
// Log.d("DEBUG", "Slider - " + slider.getBundle().get("testMsg").toString());
Toast.makeText(getApplicationContext(), "abc", Toast.LENGTH_LONG).show();
Log.d("DEBUG", "msg abc 123");
// Toast toast = Toast.makeText(this, "abc", Toast.LENGTH_SHORT);
// toast.setGravity(Gravity.TOP|Gravity.CENTER, 0, 0);
// toast.show();
}
-------更新2
我刚刚发现操作栏 toast 也没有显示,我确实设置了标题元素,我使用的是位于屏幕底部的拆分操作栏。
其实我之前可以看到所有的 toast 消息,然后我对 UI 或其他一些东西进行了一些更改,然后所有的 toast 都消失了。问题是我无法回滚到 toast 运行良好的旧版本,我找不到它们现在消失的原因。
顺便说一下,在我添加了自定义图像滑块之后,吐司仍然很好,除了自动切换图像滑块的后台线程之外没有任何其他线程。
【问题讨论】:
-
使用活动上下文?