当前位置: 代码迷 >> Android >> Android Handler(4)
  详细解决方案

Android Handler(4)

热度:92   发布时间:2016-05-01 14:08:40.0
Android Handler(四)
可以看到在onCreate 方法中线程的ID是1(UI线程) 这与 HandlerMessage 进行消息处理时是所作的线程ID是一样的,而消息发送的线程ID则为8非UI线程。

  使用Threadle进行实现

java代码:
public class ThreadHandlerrActivity extends Activity implements Callback, OnClickListener {

private TextView txt;

private Button btnStart, btnStop;

private Handler myHandler;

private TimerThread timerThread;

private int Total=30;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

txt = (TextView) findViewById(R.id.txt);

btnStart = (Button) findViewById(R.id.btnStartTime);

btnStop = (Button) findViewById(R.id.btnStopTime);

Log.d("ThreadId", "onCread:" + String.valueOf(Thread.currentThread().getId()));

myHandler = new Handler(this);

btnStart.setOnClickListener(this);

btnStop.setOnClickListener(this);

}

/** * 实现消息处理 */

@Override

public boolean handleMessage(Message msg) {

switch(msg.what) {

case 0: Bundle date=msg.getData();

txt.setText(String.valueOf(date.getInt("time")));

Log.d("ThreadId", "HandlerMessage:" + String.valueOf(Thread.currentThread().getId()));

Log.d("ThreadId", "msgDate:" + String.valueOf(date.getInt("time")));

break;

}

return false;

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btnStartTime:

//自定义的线程

timerThread=new TimerThread(myHandler,60);

timerThread.start();

break;

case R.id.btnStopTime: timerThread.stop();

//timerThread.destroy();

break;

}

}



}
  相关解决方案