概述
相信android开发的朋友们,对于handler一定非常的熟悉,本文只讲handler.postDelayed()使用及具体的细节,不正确之处欢迎大家指正!!
下面给出具体的代码,并且附上运行后的结果
package com.example.demo;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
public class MainActivity extends Activity {
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
handler = new Handler();
}
private Runnable mTimeTask = new Runnable() {
@Override
public void run() {
Log.d("MainActivity", "---------mTimeTask---------"+System.currentTimeMillis());
handler.postDelayed(this, 10*1000);
}
};
public void click(View view){
Log.d("MainActivity", "---------one---------"+System.currentTimeMillis());
handler.postDelayed(mTimeTask, 100);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("MainActivity", "---------handler.postOne---------"+System.currentTimeMillis());
}
}, 5*1000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("MainActivity", "---------handler.postTwo---------"+System.currentTimeMillis());
}
}, 3*1000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("MainActivity", "---------handler.postThree---------"+System.currentTimeMillis());
}
}, 2 * 1000);
Log.d("MainActivity", "---------two---------"+System.currentTimeMillis());
}
}
下面是执行的结果
09-09 20:45:18.498: D/MainActivity(1373): ---------one---------1441802718504
09-09 20:45:18.502: D/MainActivity(1373): ---------two---------1441802718504
09-09 20:45:18.602: D/MainActivity(1373): ---------mTimeTask---------1441802718604
09-09 20:45:20.506: D/MainActivity(1373): ---------handler.postThree---------1441802720510
09-09 20:45:21.506: D/MainActivity(1373): ---------handler.postTwo---------1441802721507
09-09 20:45:23.510: D/MainActivity(1373): ---------handler.postOne---------1441802723512
09-09 20:45:28.610: D/MainActivity(1373): ---------mTimeTask---------1441802728610
09-09 20:45:38.618: D/MainActivity(1373): ---------mTimeTask---------1441802738619
09-09 20:45:48.626: D/MainActivity(1373): ---------mTimeTask---------1441802748630
根据上面的日志分析,便非常清晰的说明了,在OnCreate方法中执行handler.postDelayed()方法和具体的顺序是没有关系的,具体的执行顺序是根据方法中设置的时间,就是所谓的延时时间,只要延时时间到了就会执行该方法。
如果想验证上面的日志信息,请运行上述代码!!!
最后
以上就是伶俐皮皮虾为你收集整理的简单使用handler.postDelayed()方法的全部内容,希望文章能够帮你解决简单使用handler.postDelayed()方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复