[小代码]在任何时候使用Toast
2013-05-18 11:56
225 查看
通常,您需要弹出一个Toast消息——无论你是不是在GUI线程。
然而,你只可以使用Toast在主GUI线程,否则你会遇到问题,Toast显示将不会消失
(因为主GUI context不知道任何在一个单独的线程context的Toast)。
所以,能够使用Toast到任何你希望的地方,你必须能够将Toast放在主GUI线程。
要做到这一点,您可以使用AsyncTask。
然而,你只可以使用Toast在主GUI线程,否则你会遇到问题,Toast显示将不会消失
(因为主GUI context不知道任何在一个单独的线程context的Toast)。
所以,能够使用Toast到任何你希望的地方,你必须能够将Toast放在主GUI线程。
要做到这一点,您可以使用AsyncTask。
//一个AsyncTask类,Toast将运行在主GUI线程 private class ToastMessageTask extends AsyncTask<String, String, String> { String toastMessage; @Override protected String doInBackground(String... params) { toastMessage = params[0]; return toastMessage; } protected void OnProgressUpdate(String... values) { super.onProgressUpdate(values); } // 这是执行在GUI线程context protected void onPostExecute(String result){ Toast toast = Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT); toast.show(); } }
// 使用: new ToastMessageTask().execute("这是一个toast消息!");
相关文章推荐
- 自定义toast时,有些时候不能设置想要的宽和高(代码动态设置或使用文末方式)
- .“在JAVA中,异常子类必须在它们任何父类之前使用,因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,后面运行子类的catch语句将永远不会到达。而且,Java中不能到达的代码是一个错误。”
- 在使用Git push或pull代码的时候,总是要输入用户名和密码的问题
- 手风琴相册制作的代码(不使用任何js)
- iOS中代码创建UIView的时候,使用weak还是strong?
- 在看官方的例子时候由一个grid实例,在每一行之前有个加号,展开可以显示内容,在实际应用中还是非常有用的,照搬例子的代码,发现老是提示对象不存在,查阅资料后发现是没有加载插件,这里和大家分享下Ext.grid.RowExpander插件的使用,
- 使用VC6.0编译C++代码的时候报错:fatal error C1071: unexpected end of file found in comment(Mark ZZ)
- 纯代码和使用Storyboard的时候控制器中初始化方法的执行
- 工具类:以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext.
- 当只有一个APK的时候使用robotium进行自动化测试_测试Toast
- 第一行代码 在活动中使用Toast
- 使用xcode调试代码的时候进入断点显示变量全是nil,我用NSLog输出那个变量却是有值的,这个是什么原因呢
- 在使用Git提交代码的时候犯了个低级错误
- Qt5 : 使用QtDesigner的时候查看代码正确 但是编译的时候总出现 为定义的错误
- 使用VC6.0编译C++代码的时候报错:fatal error C1071: unexpected end of file found in comment(Mark ZZ)
- Eclipse设置任何时候都能触发你的代码自动补全及快捷键方法
- 代码块(block)的使用---iOS4.0以后推出(声明成属性的时候,用copy修饰)
- 解决使用vim-go插件时候保存go代码导致设置好的折叠消失的问题
- 使用华为手机debug代码的时候没有日志输出怎么办?
- Delphi2007代码在Delphi2009使用时候碰到的Unicode问题