http://kakadu.blog.51cto.com/4050768/1019824/
- handler = new Handler(){
- public void handleMessage(Message message)
- {
- switch (message.what)
- {
- case 1:
- try
- {
- Object obj = message.obj;
- Method method = obj.getClass().getDeclaredMethod("hide", null);
- method.invoke(obj, null);
- }
- catch (Exception e)
- {
- }
- }
- }
- };
- Timer toastTimer = new Timer(true);
- TimerTask toastTT = new TimerTask() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- Message message = new Message();
- message.what = 1;
- Toast tt = Toast.makeText(m_App.getActivity(), "test", Toast.LENGTH_SHORT);
- tt.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 50);
- Field field = null;
- field.setAccessible(true);
- try {
- field = tt.getClass().getDeclaredField("mTN");
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- Object obj = null;
- try {
- obj = field.get(tt);
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- message.obj = obj;
- handler.sendMessage(message);
- }
- };
- toastTimer.schedule(toastTT, 800);
- toastTimer.purge();
- //首先定义全局变量mToast已经显示和隐藏函数
- private Toast mToast;
- public void showToast(String text) {
- if(mToast == null) {
- mToast = Toast.makeText(m_App.getActivity(), text, Toast.LENGTH_SHORT);
- } else {
- mToast.setText(text);
- mToast.setDuration(Toast.LENGTH_SHORT);
- }
- mToast.show();
- }
- public void cancelToast() {
- if (mToast != null) {
- mToast.cancel();
- }
- }
- //然后调用显示函数并向handler发消息
- showToast(“test toast”);
- Message delayMsg = m_Handler.obtainMessage(AIRPLAY_MESSAGE_HIDE_TOAST);
- m_Handler.sendMessageDelayed(delayMsg, AIRPLAY_TOAST_DISPLAY_TIME);
- //最后在handler中处理消息
- private Handler m_Handler = new Handler()
- {
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- switch(msg.what)
- {
- case 0:
- break;
- case AIRPLAY_MESSAGE_HIDE_TOAST :
- {
- cancelToast();
- break;
- }