導航:首頁 > 操作系統 > android線程調試

android線程調試

發布時間:2023-09-22 03:20:33

android 請教如何從Thread中調用Activity里的方法謝謝

如果你的playSound方法里沒有修改界面的代碼,比如TextView.setText()這樣的方法,是可以直接在線程里調用這個方法的,可以直接訪問。如果要修改界面,就要用到handler類來進行。

❷ android開發中,如何在做一些耗時的操作時,另起一個新線程

handler其實就是消息處理機制。首先在主線程也就是UI創建一個Handler對象,復寫其中的handMessage( Message msg)方法。該方法里的msg就是子線程發來的消息,表示子線程處理完了,以這個msg來通知主線程。讓主線程來作UI的繪制工作。

那麼子線程工作完了就要發消息了,比如:
run(){
data = getDataFromInternet();//耗時工作
Message msg = handler.obtainMessage(0, data);//通過handler得到消息,該消息的標識為0,消息內容是data
handler.sendMessage(msg);//發送
}
然後handler在主線程就負責接收:
public Handler handler = new Handler(){//處理UI繪制

@SuppressWarnings("unchecked")
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
data = (List<Map<String, Object>>) msg.obj;
if(data == null){
Toast.makeText(AllMovieActivity.this, "網路連接失敗,獲取不到影片信息", 1).show();
}else {

adapter = new HotMoviedapter(AllMovieActivity.this, data, R.layout.allmovielist_item,
new String[] { "picurl", "chname", "director", "leadrole",
"fshowtime", "country" }, new int[] { R.id.picurl,
R.id.chname, R.id.director, R.id.leadrole,
R.id.fshowtime, R.id.country },mListView);
TextView v = new TextView(AllMovieActivity.this);
v.setHeight(80);
v.setSelectAllOnFocus(false);
mListView.addFooterView(v);
mListView.setAdapter(adapter);
}
break;

default:
break;
}
}
};

❸ 如何理解android多線程里的getLooper方法

下面的代碼是學習Handler.post方法的,第一種寫法沒有使用getLooper,結果運行的效果是一個線程,第二種寫法使用了getLooper,運行的效果是多線程的:
package com.WriteCode.AndroidHandlerPost;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.util.Log;

public class AndroidHandlerPost extends Activity {

private Handler mHandler = null;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//第一種寫法beg,不使用getLooper,那麼整個是一個線程(UI線程)
//mHandler = new Handler();
//第一種寫法end,不使用getLooper,那麼整個是一個線程(UI線程)

//第二種寫法beg,不使用getLooper,那麼整個是兩個線程
HandlerThread handlerThread = new HandlerThread("myHandlerThread");
handlerThread.start();
mHandler = new Handler(handlerThread.getLooper());
//第二種寫法end,不使用getLooper,那麼整個是兩個線程

mHandler.post(new MyRunnable());

Log.e("OnCreate", "The Thread is: " + Thread.currentThread().getId());

setContentView(R.layout.main);
}

private class MyRunnable implements Runnable
{

@Override
public void run() {
// TODO Auto-generated method stub
Log.e("Runnable", "The Thread is running");
Log.e("Runnable", "The Thread is: " + Thread.currentThread().getId());
try
{
Thread.sleep(6000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}

}
}

❹ android在activity啟用線程,沒有出錯,調試過了,不執行run()方法,附上代碼。

我 直接給你上代碼了,你看看線程是怎麼用的,希望你自己學會他!
public void OnClick(){
MyThread t1=new MyThread();
t1,start();
}

class MyThread implements Runnable {
public void run() {
你的代碼

}
}

❺ 安卓調試精靈 -超好用的通用調試工具

安卓調試精靈 是一款功能全面,簡單易用的輔助開發和調試工具。 

1,安卓日誌抓取,實時日誌查看,關鍵字過濾,多橡雀文件保存。

2,在未配置adb的電腦上自動配置adb環境變數,實時adb連接狀態顯示。

3,進程id號,進程名,cpu使用率獲取,殺進程,線程總數獲取,進程內存實時顯示。旁如虧

4,獲取安卓設備上進程實時cpu使用率,進程名,線程名,支持性能數據保存成excel文件。

5,安卓設備上已安裝應用列表展示,卸載應用,打開應用,安裝應用,已運神安裝應用所在位置,已安裝應用大小,版本號,應用的界面名。

6,獲取安卓設備機器型號,版本基本信息,網路IP信息,內存信息,屏幕解析度,內存信息,電池信息,當前窗口包名,截屏,錄屏,按鍵模擬,廣播發送等。

7,附帶最新的反編譯工具,源碼查看工具,busybox等工具。

一,安卓設備的信息展示和快捷控制:

二,安卓設備上(手機)上正在運行的進程和內存信息,下圖所示是QQ的詳細內存信息展示:

三,性能模塊,展示進程所佔的cpu百分比,並支持保存為excel文檔,下圖是跑在我手機上的qq相關的進程:

四,已安裝的應用詳情介紹(下圖展示的是手機QQ的安裝位置,版本號,apk大小,有哪些Activity等):

五,實時日誌模塊,可根據進程號,關鍵字等過濾日誌:

六,幫助模塊,支持自動配置adb環境變數,小白也能輕松上手:

閱讀全文

與android線程調試相關的資料

熱點內容
半圓形計演算法 瀏覽:388
手機建立文件夾用什麼軟體 瀏覽:730
oss壓縮上傳 瀏覽:980
藍色學校網站源碼 瀏覽:827
androidgridview表格 瀏覽:604
壓縮怎麼eq閃 瀏覽:740
流密碼演算法openssl 瀏覽:262
怎麼數黃豆個數python 瀏覽:799
混沌序列加密的結論 瀏覽:224
最新脫單app哪個好 瀏覽:638
如何用自己電腦做伺服器做網頁 瀏覽:140
伺服器安全配置要考什麼證書 瀏覽:633
ipadpro可以編程 瀏覽:541
外國的程序員和中國的程序員 瀏覽:151
抖音小店app如何聯系客服 瀏覽:976
linux打開多個終端 瀏覽:501
linux中的命令 瀏覽:582
優化小米6相機演算法 瀏覽:260
ak47pdf 瀏覽:150
人與文化pdf 瀏覽:642