Handler 的Send message ,可以传: what , arg1 ,arg2 ,obj :
package com.example.userrecyclerviewapplication; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.util.List; import java.util.Random; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private Button send, upload; private TextView txt; private String str = ""; private Handler handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if(msg.what == 1){ txt.setText(str); }else if(msg.what == 2){ String str2 = "What : "+ msg.what+";arg1:"+msg.arg1+";arg2:"+msg.arg2+";obj:"+((Random)msg.obj).nextInt(); txt.setText(str2); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initEvent(); } private void initView() { send = findViewById(R.id.send_request); upload = findViewById(R.id.upload); txt = findViewById(R.id.txt); } private void initEvent() { upload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { Message message = new Message(); message.what = 2; message.arg1 = 111; message.arg2 = 222; message.obj = new Random(); handler.sendMessage(message); } }){}.start(); } }); send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { String msg = get(); handler.sendEmptyMessage(1); } }) { }.start(); } }); } private String get() { try { URL url = new URL("http://10.0.2.2/star_male.json"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(6000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream in = connection.getInputStream(); byte[] b = new byte[1024]; int len = 0; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while ((len = in.read(b)) > -1) { baos.write(b, 0, len); } str = new String(baos.toByteArray()); return str; } } catch (ProtocolException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } }