本篇文章給大家分享的是有關(guān)Android中怎么使用Thread和Handler實(shí)現(xiàn)網(wǎng)絡(luò)編程,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站制作、潁東網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、潁東網(wǎng)絡(luò)營銷、潁東企業(yè)策劃、潁東品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供潁東建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
MainActivity.java
package com.example.justyu.login_demo; import android.app.Activity; import android.app.ProgressDialog; import android.os.Handler; import android.os.Message; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.justyu.login_demo.Sercice.ServiceException; import com.example.justyu.login_demo.Sercice.UserService; import com.example.justyu.login_demo.Sercice.UserServiceImp; import java.lang.ref.WeakReference; public class MainActivity extends ActionBarActivity implements View.OnClickListener{ private EditText loginName,loginPassword; private Button loginButton; private static final int login_success=1; private static final String MSG_LOGIN_ERROR="登陸失敗!"; private static final String MSG_LOGIN_SUCCESS="登陸成功!"; public static final String msg_login_failed="登錄名或密碼錯誤!!"; private static ProgressDialog dialog; //接口 的實(shí)現(xiàn) private UserService userService=new UserServiceImp(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loginName=(EditText)this.findViewById(R.id.editText); loginPassword=(EditText)this.findViewById(R.id.editText2); loginButton=(Button)this.findViewById(R.id.button); loginButton.setOnClickListener(this); } //點(diǎn)擊登陸按鈕 后進(jìn)行的操作 @Override public void onClick(View v) { final String Name=loginName.getText().toString().trim(); final String Password=loginPassword.getText().toString().trim(); /** * 登陸驗(yàn)證 */ if(dialog==null){ dialog=new ProgressDialog(MainActivity.this); dialog.setTitle("等待"); dialog.setMessage("登錄中。。。。。"); dialog.setCancelable(true); dialog.show(); } //副線程 Thread thread=new Thread(new Runnable() { @Override public void run() { try{ userService.userLogin(Name,Password); //發(fā)送消息 handler.sendEmptyMessage(login_success); }//業(yè)務(wù)邏輯異常 catch (ServiceException e){ e.printStackTrace(); //發(fā)送消息 Message msg=new Message(); Bundle data=new Bundle(); data.putSerializable("ERROR_MSG",e.getMessage()); msg.setData(data); //傳過去的是0 handler.sendMessage(msg); } catch (Exception e){ e.printStackTrace(); //發(fā)送消息 Message msg=new Message(); Bundle data=new Bundle(); data.putSerializable("ERROR_MSG",MSG_LOGIN_ERROR); msg.setData(data); //傳過去的是0 handler.sendMessage(msg); } } }); thread.start(); } private void showTip(String str){ Toast.makeText(this,str,Toast.LENGTH_SHORT).show(); } /** * 主線程與副線程之間的通信 Handler */ private static class MyHandler extends Handler{ private final WeakReferencemyActivity; public MyHandler(MainActivity activity){ myActivity=new WeakReference (activity); } @Override public void handleMessage(Message msg) { //可以引用MainActivity的 // 方法引用((MainActivity)myActivity.get()). if(dialog!=null){ dialog.dismiss(); } int flag=msg.what; switch (flag){ case 0: String errorMsg=(String)msg.getData().getSerializable("ERROR_MSG"); ((MainActivity)myActivity.get()).showTip(errorMsg); break; case login_success: ((MainActivity)myActivity.get()).showTip(MSG_LOGIN_SUCCESS); break; default: break; } } } private MyHandler handler=new MyHandler(this); }
userService.java
package com.example.justyu.login_demo.Sercice;
/**
* Created by JustYu on 2015/4/9.
*/
public interface UserService {
public void userLogin(String loginName,String loginPassword) throws Exception;
}
UserServiceImp.java
package com.example.justyu.login_demo.Sercice; import android.util.Log; import com.example.justyu.login_demo.MainActivity; /** * Created by JustYu on 2015/4/9. */ public class UserServiceImp implements UserService { @Override public void userLogin(String loginName, String loginPassword) throws Exception { Log.d("Yu",loginName); Log.d("Yu",loginPassword); Thread.sleep(3000); //與服務(wù)器端交互 if(loginName.equals("1")&&loginPassword.equals("1")){ }else{ throw new ServiceException(MainActivity.msg_login_failed); } } }
以上就是Android中怎么使用Thread和Handler實(shí)現(xiàn)網(wǎng)絡(luò)編程,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。