Android学习-Service中显示Toast

本文介绍了如何在Android Service中正确地显示Toast消息。通常Service运行在后台,不在UI线程中,因此直接显示Toast会失败。文章提供了一个解决方案,通过获取主线程的Looper并使用Handler传递任务到UI线程来实现。

Toast的显示,需要looper! 如果在没有looper的情况下可以调用Looper.prepare() 来准备looper。但是在Service中,显示Toast的方法就是必须要将Toast的显示放在主线程中,即UI线程,所以,这里就要通过Looper.getMainLooper(),将主线程的Looper给Handler,然后通过Handler发送给UI线程,getApplicationContext(),即当前正在执行的UI线程。

Handler handler2=new Handler(Looper.getMainLooper());  // 这里是得到主界面程序的Looper
    handler2.post(new Runnable(){  
    public void run(){  
       Toast.makeText(getApplicationContext(), getString(R.string.Toast_msg_versioncheck), Toast.LENGTH_LONG).show(); 
    }  
});

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值