編輯:關於Android編程
android,啟動了一個子線程,這個子線程是一個死循環,不成的打印“Hello”。
現在要實現點擊一個Button,讓這個子線程終止,用什麼方法啊?
stop()不起作用,destroy()有異常,Handler貌似也解決不了,因為是一個線程。。。
答案如下:
線程像這樣: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程序退出後,線程停止的問題
www.2cto.com
經過測試:以下方法可以終止線程。
方法一:System.exit(0);
方法二:android.os.Process.killProcess(android.os.Process.myPid())//關閉時稍微有些延遲
0
一個關於Android程序退出後,線程停止的問題10
在Android的程序中,UI線程是主線程
理論上來講,Activity調用了finish方法後,主線程就終止了
那麼其上的子線程也應該是停止
但是通過測試,發現並不是這樣
finish退出程序後,子線程還在後台跑
必須用DDMS停止該線程才行
那麼如何在程序退出時,停止所有開啟的子線程呢?
我想到了兩個方案:
一,在退出時,改變線程內循環的標識符
while(isRun){...}
將isRun置為false,則打破了循環,線程終止
二,不采用while(isRun){...}這樣的循環方式
而利用Android提供的Handler機制來完成
Java代碼
//將一個線程立即加入線程隊列,並執行它的[color=red]run[/color]方法
handler.post(test);
Runnable test = new Runnable(){
public void run(){
//以上代碼略
//延遲1000毫秒,執行這個線程的[color=red]run[/color]方法
handler.postDelayed(test,1000);
}
}
//退出時
//即從線程隊列中移除該線程,不再被執行
handler.removeCallbacks(test);
如紅字標注,確實是調用的run方法,所以其實並未真正的啟動一個子線程
不止一次在網上看到類似的新聞、丈夫出軌,為了不讓妻子發現手機裡存儲的數據,不惜格式化甚至砸壞手機,但妻子拿著格式化後的手機找到專門的數據恢復人員,幾天之後,
打開微信朋友圈,就被一組微信款性格標簽刷爆,在別人眼裡你究竟是一個怎樣的人呢?踏實務實還是傲嬌?這麼好玩的微信朋友圈性格標簽怎麼弄?下面小編就告訴大家微信朋
Fragment的主要意義就是提供與Activity綁定的生命周期回調。Fragment不一定要向Activity的視圖層級中添加View. 當某個模塊需要獲得Activ
拍照功能實現Android 程序上實現拍照功能的方式分為兩種:第一種是利用相機的 API 來自定義相機,第二種是利用 Intent 調用系統指定的相機拍照。下面講的內容都