Sử dụng Threading cơ bản

Trước mình có một bài viết về threading được dịch từ một blog khác, link mình có đặt ở phần sidebar của blog này, còn đây là bài viết cho trường hợp cụ thể, kịch bản tạo một login activity, connect tới server và trong khi connect thì show progressbar .

1. Trước tiên cần implements Runnable cho class


public class Login extends Activity implements Runnable{}

2. Trong run method thực hiện công việc check thông tin tới server, sử dụng đối tượng Handler xử lý biến nếu được login hay chưa, isLogin là biến toàn cục của class .

@Override
		public void run() {     
			checkLogin(username, pass, IMEI);
			handler.sendEmptyMessage(0);
		 }
		private Handler handler = new Handler(){
		      @Override
		      public void handleMessage(Message msg){
		    	  try{
		    		  if(isLogin){
		    			  Toast.makeText(getApplicationContext(), "Kết nối thành công", Toast.LENGTH_LONG).show();
		    			  Intent i = new Intent(Login.this, HomeActivity.class);
		    			  dialog.dismiss();
				          startActivity(i);
				          //finish();
		    		  }else{
		    			     dialog.dismiss();
		    			     Messages.makeText(Login.this, "Thông tin tài khoản không đúng", Messages.STYLE_ALERT).show();
		    		  }
		    	  }catch(Exception exp){
		  			        Toast.makeText(getApplicationContext(), "Bạn cần kết nối internet để sử dụng ứng dụng này !", Toast.LENGTH_LONG).show();
		  			finish();
		    	 }
		       }
		  };   

3. Đây là bước khởi chạy thread đăng nhập, ban đầu cho show progressbar, khởi chạy thread, check biến isLogin, nếu login thành công dialog được Dimiss (handler sẽ dimiss dialog)

dialog = new ProgressDialog(Login.this);
				        dialog.setCancelable(true);
				        dialog.setMessage("Connecting...");
				        dialog.show();
						Thread thread = new Thread(Login.this);
			        	thread.start();

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s