androidthreadrun
① Android的Thread編程中,我在Thread的run()方法中用Toast輸出信息時出錯!
Toast.makeText(ThreadActivity.this, "toast", Toast.LENGTH_SHORT).show();
他是要再主線程中被調用,也就是ThreadActivity.this所在的線程中調用。
直接和context對應的。
② android中怎麼用runnable
類似Thread類,重載run方法。
Runnable mRunnable = new Runnable() {
public void run() {
//自定義功能
}
};
然後一般通過Handler,發送到消息隊列裡面去運行,
如 Handler mHandler = new Handler();
mHandler.post(mRunnable);
mHandler.postDelayed (mRunnable);
一些原型如下:
public final boolean post(Runnable r)
{
return sendMessageDelayed(getPostMessage(r), 0);
}
public final boolean postDelayed(Runnable r, long delayMillis)
{
return sendMessageDelayed(getPostMessage(r), delayMillis);
}
public final boolean postAtTime(Runnable r, Object token, long uptimeMillis)
{
return sendMessageAtTime(getPostMessage(r, token), uptimeMillis);
}
③ android如何終止一個正在運行的子線程
線程像這樣:
Thread{
boolean flag = fase;
run(){
while(!flag){
}
}
}
Thread t = new Thread();
t.start();
-----------------------------------------------------
要終止循環,只需要這樣
t.flag=true;
================================================
還有一種方式 線程像這樣:
Thread{
run(){
while(true){
Thread.sleep(xxxx);
}
}
}
Thread t = new Thread();
t.start();
--------------------------------------------
要終止循環,只需要這樣
t.interrupte();
但是這里要注意調用的時機,要在子線程執行了run方法裡面的sleep(xxxx)後xxxx時間之內調用。也就是子線程會睡一會,醒一會,睡一會,醒一會,要在子線程睡著的時候調用。
④ android編程中thread, run, handler,之間關系。
首先this這個類實了runnable介面,run方法在thread.start()後自動被調用,這里是thread和runnable之音協定,這也是介面意義所在。由於是在子線程中操作的,子線程無法操作屬於ui線程的權力,所以run方法走完後,需要通過handler發送消息在ui線程,完成ui的刷新。
順序是:
new Thread(this).start();
run()
handler.sendMessage(m);
handleMessage(Message msg)
⑤ android在activity啟用線程,沒有出錯,調試過了,不執行run()方法,附上代碼。
我 直接給你上代碼了,你看看線程是怎麼用的,希望你自己學會他!
public void OnClick(){
MyThread t1=new MyThread();
t1,start();
}
class MyThread implements Runnable {
public void run() {
你的代碼
}
}
⑥ Android中的Handler詳解以及和Thread的區別
通俗的解釋就是: Thread處理Handler發送過來的消息,每個Thread都要有一個消息處理隊列(MessageQueue),用於存放handler發送過來的消息。Thread為一個while(true)無限循環,每次從消息隊列取出消息,並且回調Handler的消息處理函數(handlerMessage)。
⑦ eclipse中做android游戲如何創建Thread(線程)
1、第一種方式:使用Thread不帶參數的構造方法,並重寫run()方法
new Thread(){
public void run(){
//在run方法中調用需要執行的代碼,完成後發送消息與主線程交互
Message msg=new Message();
msg.what=110;
handler.sengMessage();
}
}.start();
2、第二種方式:使用Thread帶參數的構造方法,並重寫Runable()中的run方法
new Thread(new Runable(){
public void run(){
//在run方法中調用需要執行的代碼,完成後發送消息與主線程交互
Message msg=new Message();
msg.what=110;
handler.sengMessage();
}).start();
3、在UI線程中接收Thread子線程發送的消息,刷新UI界面
⑧ android 開發求助,關於thread計時問題
1、定義個Handler。
Handler mHander = new Handler();
2、定義一個Runnable對象。
Runnable startSecondActivity = new Runnable() {
public void Run() {
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
getApplicationContext.startActivity(intent );
}
};
2、往mHandler里延時Post一個Runnable,用於啟動第二個Activity。
mHandler.postDelayed(startSecondActivity, 5000);
-----------------------------------------------------------------------------------------------------
安卓精英團為你解答
安卓精英團歡迎各位精英加入!