Android开发中,使用线程应该注意的问题!
2012-04-01 15:01
731 查看
原帖地址:http://blog.csdn.net/Android_Tutor/archive/2010/08/24/5834246.aspx
我们都知道Hanlder是线程与Activity通信的桥梁,我们在开发好多应用中会用到线程,有些人处理不当,会导致当程序结束时,线程并没有被销毁,而是一直在后台运行着,当我们重新启动应用时,又会重新启动一个线程,周而复始,你启动应用次数越多,开启的线程数就越多,你的机器就会变得越慢。
为了方便 大家理解,我写一个简单的Demo.功能就是每2秒中将应用的Title更换一次。具体步骤如下:
第一步:新建一个Android工程命名为ThreadDemo。
第二步:修改ThreadDemo.java,代码如下:
[c-sharp]
view plaincopyprint?
package com.tutor.thread;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
public class ThreadDemo extends Activity {
private static final String TAG =
"ThreadDemo";
private int count = 0;
private Handler mHandler =
new Handler();
private Runnable mRunnable =
new Runnable() {
public void run() {
//为了方便 查看,我们用Log打印出来
Log.e(TAG, Thread.currentThread().getName() +
" " +count);
count++;
setTitle("" +count);
//每2秒执行一次
mHandler.postDelayed(mRunnable, 2000);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过Handler启动线程
mHandler.post(mRunnable);
}
}
所以ThreadDemo.java的完整代码如下:
[c-sharp]
view plaincopyprint?
package com.tutor.thread;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
public class ThreadDemo extends Activity {
private static final String TAG =
"ThreadDemo";
private int count = 0;
private Handler mHandler =
new Handler();
private Runnable mRunnable =
new Runnable() {
public void run() {
//为了方便 查看,我们用Log打印出来
Log.e(TAG, Thread.currentThread().getName() +
" " +count);
count++;
setTitle("" +count);
//每2秒执行一次
mHandler.postDelayed(mRunnable, 2000);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过Handler启动线程
mHandler.post(mRunnable);
}
@Override
protected void onDestroy() {
//将线程销毁掉
mHandler.removeCallbacks(mRunnable);
super.onDestroy();
}
}
我们都知道Hanlder是线程与Activity通信的桥梁,我们在开发好多应用中会用到线程,有些人处理不当,会导致当程序结束时,线程并没有被销毁,而是一直在后台运行着,当我们重新启动应用时,又会重新启动一个线程,周而复始,你启动应用次数越多,开启的线程数就越多,你的机器就会变得越慢。
为了方便 大家理解,我写一个简单的Demo.功能就是每2秒中将应用的Title更换一次。具体步骤如下:
第一步:新建一个Android工程命名为ThreadDemo。
第二步:修改ThreadDemo.java,代码如下:
[c-sharp]
view plaincopyprint?
package com.tutor.thread;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
public class ThreadDemo extends Activity {
private static final String TAG =
"ThreadDemo";
private int count = 0;
private Handler mHandler =
new Handler();
private Runnable mRunnable =
new Runnable() {
public void run() {
//为了方便 查看,我们用Log打印出来
Log.e(TAG, Thread.currentThread().getName() +
" " +count);
count++;
setTitle("" +count);
//每2秒执行一次
mHandler.postDelayed(mRunnable, 2000);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过Handler启动线程
mHandler.post(mRunnable);
}
}
[c-sharp] view plaincopyprint? @Override protected void onDestroy() { mHandler.removeCallbacks(mRunnable); super.onDestroy(); } @Override protected void onDestroy() { mHandler.removeCallbacks(mRunnable); super.onDestroy(); }
所以ThreadDemo.java的完整代码如下:
[c-sharp]
view plaincopyprint?
package com.tutor.thread;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
public class ThreadDemo extends Activity {
private static final String TAG =
"ThreadDemo";
private int count = 0;
private Handler mHandler =
new Handler();
private Runnable mRunnable =
new Runnable() {
public void run() {
//为了方便 查看,我们用Log打印出来
Log.e(TAG, Thread.currentThread().getName() +
" " +count);
count++;
setTitle("" +count);
//每2秒执行一次
mHandler.postDelayed(mRunnable, 2000);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过Handler启动线程
mHandler.post(mRunnable);
}
@Override
protected void onDestroy() {
//将线程销毁掉
mHandler.removeCallbacks(mRunnable);
super.onDestroy();
}
}
相关文章推荐
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- -Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android开发中,使用线程应该注意的问题
- Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十八)---Android开发中,使用线程应该注意的问题!
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- Android开发中使用static变量应该注意的问题
- android开发使用TextView/EditText应该注意的地方
- 在开发WML时使用标签应该注意的问题
- 在Ubuntu上进行Android开发时, 搭建环境应该注意的几个问题
- 公司开发时候,使用svn进行版本控制,在提交代码的时候应该注意的问题,总结!!!!
- android线程使用注意问题?【安卓进化二】
- Android开发中,使用线程下载apk文件,出现FileNotFound的问题,解决办法