栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java Android中制作间隔计时器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java Android中制作间隔计时器

我总是建议使用

Handler

它比内置类要花更多的工作,但是我发现它的效率要高得多,您可以更好地控制它。

Handler是一个类,它将在特定的

Looper
/
Thread
默认情况下(在其创建的Thread上)处理代码执行,否则,您可以通过将传递
Looper
Handler
构造函数来指定Handler在何处执行其代码,例如-
newHandler(Looper.getMainLooper());

我之所以推荐循环程序,是因为您具有更高的控制灵活性,因为它比

TimerTask
方法的抽象度略低。

通常,它们对于跨线程执行代码非常有用。例如对于跨线程管道数据很有用。

两个主要用途是:

public void onCreate(Bundle savedInstanceState){    super.onCreate(savedInstanceState);    final Handler h = new Handler();    h.postDelayed(new Runnable()    {        private long time = 0;        @Override        public void run()        { // do stuff then // can call h again after work! time += 1000; Log.d("TimerExample", "Going for... " + time); h.postDelayed(this, 1000);        }    }, 1000); // 1 second delay (takes millis)}

使用简单!

或者,您可以使用消息来减少对象的创建。如果您正在考虑高速更新UI等-这将减轻垃圾收集器的压力。

class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        MyTimers timer = new MyTimers();        timer.sendEmptyMessage(MyTimers.TIMER_1);        timer.sendEmptyMessage(MyTimers.TIMER_2);    }    public static class MyTimers extends Handler    {        public static final int TIMER_1 = 0;        public static final int TIMER_2 = 1;        @Override        public void handleMessage(Message msg)        { switch (msg.what) {     case TIMER_1:         // Do something etc.         Log.d("TimerExample", "Timer 1");         sendEmptyMessageDelayed(TIMER_1, 1000);         break;     case TIMER_2:         // Do another time update etc..         Log.d("TimerExample", "Timer 2");         sendEmptyMessageDelayed(TIMER_2, 1000);         break;     default:         removeMessages(TIMER_1);         removeMessages(TIMER_2);         break; }        }    }}

显然,这 不是 一个完整的实现,但它应该为您提供一个良好的开端。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号