Code Bye

Android Toast显示不出来

最近在做项目时,遇到一个问题,就是Toast弹不出来。Toast代码如下:

Toast.makeText(m.getApplicationContext(), msg, Toast.LENGTH_LONG).show();

这个问题只在华为3C手机上出现,在别的手机上都可以正常弹出显示。
debug跟代码时,在华为手机上发现这行代码也走到了,context不为空,msg也不为空。

请叫大神们,有木有遇到过类似情形的?问题原因在哪儿,怎么解决的?多谢了!

没遇到过哟。
是不是context 是 application的原因?
你是在哪里调用的弹Toast
引用 3 楼 lilidejing 的回复:

你是在哪里调用的弹Toast

post到主线程的一个独立线程。

你把Context换成当前的试试呢? 
引用 4 楼 love_bluesky 的回复:
Quote: 引用 3 楼 lilidejing 的回复:

你是在哪里调用的弹Toast呢

post到主线程的一个独立线程。

必须在UI线程调

引用 6 楼 www100204 的回复:
Quote: 引用 4 楼 love_bluesky 的回复:
Quote: 引用 3 楼 lilidejing 的回复:

你是在哪里调用的弹Toast呢

post到主线程的一个独立线程。

必须在UI线程调

这个问题只在华为3C手机上出现,在别的手机上都可以正常弹出显示,这个怎么解释呢?

以前遇到过,被华为手机自带的隐私控制器将通知消息给屏蔽了
引用 8 楼 nickDeLove 的回复:

以前遇到过,被华为手机自带的隐私控制器将通知消息给屏蔽了

其他手机都OK,就是在在荣耀3C上通知toast不显示,你在设置或者安全管理里面找找看

不要用post线程,创建个主线程的handler,发消息就行了。至于只有华为手机有,估计是手机rom定制问题。还是按照大众方法走吧。
引用 7 楼 lionfresh 的回复:
Quote: 引用 6 楼 www100204 的回复:
Quote: 引用 4 楼 love_bluesky 的回复:
Quote: 引用 3 楼 lilidejing 的回复:

你是在哪里调用的弹Toast呢

post到主线程的一个独立线程。

必须在UI线程调

这个问题只在华为3C手机上出现,在别的手机上都可以正常弹出显示,这个怎么解释呢?

那我解释不了,我手上就是华为3c

runOnUiThread(new Runnable() {

									@Override
									public void run() {
										toastSomethingLong("111111");

									}
								});
多换几个手机试试,表示没遇到过这种问题..
一般toast显示不出有2个原因:
1、在非UI线程中执行,建议使用handler显示提示
2、没有执行到,这是逻辑错误
操蛋 handler 处理 代码据对执行 用自己封装的弹出框 和系统的都不行  只有3c这样
 不是代码的问题,是手机的问题,很明显了。还讨论啥?
要整个兼容的东东了

40分
你看下是不是在设置应用程序里面没有勾选你那个程序“显示通知”那项
是不是在允许XX应用发送通知的时候你点拒绝了?如果你点拒绝了之后再次调试你就要按楼上的方法处理了~
我也遇到,也是华为手机,其他手机都没问题。。。操蛋,都不知道华为干什么了,,,吧  taost 都整没了
应该是Rom的问题吧,跟代码关系不大
有些手机可以设置隐藏toast提示,检查下手机设置
找到解决方法了。
代码没有问题
手机问题  –设置–通知管理-拦截规则- 找到对应的应用-允许。 搞定
引用 18 楼 wuwuyeah 的回复:

你看下是不是在设置应用程序里面没有勾选你那个程序“显示通知”那项

就是这个问题。我日

华为消息设置的问题,重新设置一下看行不。
引用 14 楼 Mailbomb 的回复:

一般toast显示不出有2个原因:
1、在非UI线程中执行,建议使用handler显示提示
2、没有执行到,这是逻辑错误

在某些手机比如小米上是可以关闭这个toast提示的

引用 23 楼 zzudhj 的回复:

找到解决方法了。
代码没有问题
手机问题  –设置–通知管理-拦截规则- 找到对应的应用-允许。 搞定

就是这个解决办法


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android Toast显示不出来