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);
-----------------------------------------------------------------------------------------------------
安卓精英团为你解答
安卓精英团欢迎各位精英加入!