标签:bsp 取数据 发送 util 技巧 sgid gid 获得 timertask
方式不止一种,这里使用的是Timer类,创建一个定时器。我们经常需要获得移动设备端口的显示屏信息,但是onCreate()方法执行的时候,OnShow()方法不一定执行了,也就是说,在执行Oncreate()时候屏幕还没加载出来,所以这时候可以应用一个异步机制获取数据。
import android.app.Activity; import android.os.Handler; import android.os.Message; import android.view.View; import java.util.Timer; import java.util.TimerTask; /** * Created by Lenovo on 2017/6/2. */ public class MyActivity extends Activity{ public void ViewAfterShow(int width,int hight){ } /** * 使用线程异步,获取视图上的数据,比如高和宽 * @param viewID 视图ID * @param msgID 消息ID */ public void ViewShowListen(int viewID,int msgID){ final int f_viewID = viewID; final int f_msgID = msgID; final Timer f_timer = new Timer(); final Handler f_handler = new Handler(){ @Override public void handleMessage(Message msg){ if(msg.what == f_msgID){ View v = (View)findViewById(f_viewID); if(v.getWidth() != 0 && v.getHeight() != 0){ f_timer.cancel();//取消 ViewAfterShow(v.getWidth(),v.getHeight());//回调信息 } } } }; //这里之所以不在该run()方法里进行操作,是因为里面的数据是最终的,所以这里应用了一个消息发送机制。 TimerTask task = new TimerTask() { @Override public void run() { Message message = new Message(); message.what = f_msgID; f_handler.sendMessage(message);//发送消息 } }; //延迟每次延迟10毫秒 隔500毫秒执行一次 f_timer.schedule(task,10,500); } }
标签:bsp 取数据 发送 util 技巧 sgid gid 获得 timertask
原文地址:http://www.cnblogs.com/HDK2016/p/7805145.html