自己对Handler使用还不熟练,想写一个小程序,在指定的时间周期打印指定的次数的LOG信息。
记录下自己咨询到的一些方法,方便以后来查。
初步想法是用Handler,先发送一个开始的消息,显示进度条,然后发送打印log的消息,通过一个全局变量count来判断是否达到了次数,如果没达到,则在固定的delay时间再发送一个打印log的信息,如果达到了,则把进度条取消。
在OnClickListener发布开始的消息
- class ClickListener implements OnClickListener
- {
- @Override
- public void onClick(View v) {
- switch(v.getId())
- {
- case R.id.send:
- count = 0;
- mHandler.sendEmptyMessage(0);
- break;
- }
- }
- }
在handler中进行消息处理
copy
- Handler mHandler = new Handler(){
- @Override
- void dispatchMessage(Message msg) {
- // Todo Auto-generated method stub
- super.dispatchMessage(msg);
- switch (msg.what) {
- case 0:
- pd.setTitle("打印LOG");
- pd.setMessage("正在打印,请稍后...");
- pd.show();
- 1);
- break;
- 1:
- if(count < mCount)
- {
- Log.d("carter", "打印log");
- mHandler.sendEmptyMessageDelayed(1, mPeriod);
- count++;
- }
- else
- {
- if(pd!=null && pd.isShowing())
- pd.dismiss();
- }
- }
- };