import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private EditText editText;
private ProgressBar progressBar;
private MyThread myThread;
private Handler uiHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 0x321) {
progressBar.setVisibility(View.GONE);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.et);
progressBar = (ProgressBar) findViewById(R.id.pb);
myThread = new MyThread();
myThread.start();
}
public void count(View view) {
progressBar.setVisibility(View.VISIBLE);
int num = Integer.parseInt(editText.getText().toString());
Message message = Message.obtain();
message.what = 0x123;
message.arg1 = num;
//通过myThread.handler.sendMessage发送消息给内部类MyThread
myThread.handler.sendMessage(message);
}
class MyThread extends Thread {
public Handler handler;
@Override
public void run() {
Looper.prepare();
handler = new Handler(Looper.myLooper()) {
@Override
public void handleMessage(Message msg) {
if (msg.what == 0x123) {
int num = msg.arg1;
List<Integer> list = new ArrayList<>();
for (int i = 0; i <= num; i++) {
if (i % 2 == 0) {
list.add(i);
}
}
Toast.makeText(MainActivity.this, list.toString(), Toast.LENGTH_SHORT).show();
uiHandler.sendEmptyMessage(0x321);
}
}
};
Looper.loop();
}
}
}
Android 线程开发笔记 2 Looper
最新推荐文章于 2024-06-30 18:33:28 发布