import java.util.Timer;
import java.util.TimerTask; import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.widget.TextView; public class TipManager {
private static final String TAG = TipManager.class.getSimpleName(); private Context mContext;
private TextView mView; private Timer timer = null;
private TimerTask cancelTask = null; public TipManager(Context context, TextView view) {
mContext = context;
mView = view;
} public void init() {
timer = new Timer();
} public void release() {
if (cancelTask != null) {
cancelTask.cancel();
cancelTask = null;
} if (timer != null) {
timer.cancel();
timer = null;
}
} public void show(CharSequence text) {
// cancel hide task
if (cancelTask != null) {
cancelTask.cancel();
cancelTask = null;
timer.purge();
} showUI(text);
} public void show(CharSequence text, long duration) {
showUI(text); // cancel hide task
if (cancelTask != null) {
cancelTask.cancel();
cancelTask = null;
timer.purge();
} cancelTask = new TimerTask() {
@Override
public void run() {
hideUI("default");
}
}; timer.schedule(cancelTask, duration);
} private void showUI(final CharSequence text) {
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
doShow(text);
}
});
} private void hideUI(final CharSequence text) {
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
doHide(text);
}
});
} private void doShow(CharSequence text) {
mView.setText(text);
mView.setVisibility(View.VISIBLE);
} private void doHide(CharSequence text) {
mView.setText(text);
mView.setVisibility(View.INVISIBLE);
}
}

  

最新文章

  1. hive学习笔记
  2. 联系人按照A~~~Z排列
  3. eclipse中没有R文件
  4. Gradle: The New Android Build System
  5. 第三百三十九天 how can I 坚持
  6. java中的CAS
  7. 【转】Cannot change version of project facet Dynamic Web Module to 3.1 (Eclipse Maven唯一解决方案)
  8. entity 实体模型timeout设置
  9. Leetcode:LRUCache四个版本实现
  10. TTB 基本
  11. 实现一个简单的http请求工具类
  12. 1653: [Usaco2006 Feb]Backward Digit Sums
  13. DevOps之软件定义网络SDN
  14. Python面向对象篇(2)-继承
  15. ADS1.2中RO base与RW base
  16. swarm 使用整理
  17. 【Linux 进程】exec族函数详解
  18. iOS4.0及以上系统,关闭程序,applicationWillTerminate为调用问题解决
  19. vue父与子通信
  20. 迭代解析JSON简单实例

热门文章

  1. 2. 现代 javascript 新语法 及 对象专题
  2. 信号分析——从傅里叶变化到FFT
  3. 吴裕雄--天生自然Linux操作系统:Linux 简介
  4. react-native屏幕适配
  5. NGINX常用模块(二)
  6. Maven--排除依赖
  7. MySQL--MySQL 日志
  8. java内存区域与内存溢出异常(2)
  9. centos快速安装mysql
  10. 17.3.15---关于GPIO学习笔记