导航:首页 > 操作系统 > 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打开多个终端 浏览:500
linux中的命令 浏览:581
优化小米6相机算法 浏览:260
ak47pdf 浏览:150
人与文化pdf 浏览:642