gpt4 book ai didi

android - Handler.post() 线程,正在崩溃应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 08:54:06 25 4
gpt4 key购买 nike

我在开发一个应用程序,它有两个 Activity。 MainActivity 必须编辑文本才能将 IP 地址和带有 Intent 的端口发送到第二个 Activity2。

我遇到的问题是,当我使用 Handler.post() 来更新 UI 线程中的 TextView 时,应用程序崩溃了。没有处理程序线程应用程序正确运行。我认为我的代码是正确的,但我不明白这个问题的原因。

public class Activity2 extends Activity {

private Socket s;
private OutputStream out = null;
private PrintWriter w = null;
private Handler handler = new Handler();
private TextView textView1;
private String tag = "ALEX";
private static String IP;
private static int port;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);

Bundle extras = getIntent().getExtras();
if (extras != null) {
IP = extras.getString("IP");
String port2 = extras.getString("PORT");
port = Integer.parseInt(port2);
// Log.v("ip",ip);
// Log.v("port",port);
}

Runnable runnable = new Runnable() {
public void run() {

synchronized (this) {
try {
s = new Socket(IP, port);
out = s.getOutputStream();
w = new PrintWriter(out);
} catch (Exception e) {
Log.v("error socket", "Alex soc");
e.printStackTrace();
}
}

**handler.post(new Runnable() {
@Override
public void run() {
synchronized (this) {
try {
Thread.sleep(1000);
if (s.isConnected)
textView1.setText("connected...");
// textView1.setText("not connected...");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
Log.v("error handler", "handler Alex");
e.printStackTrace();
}
}
}
});**

}
};
Thread mythread = new Thread(runnable);
mythread.start();

最佳答案

问题是您在创建 Activity 对象后创建处理程序对象。

处理程序应在 Looper 之后创建准备好了。

所以你的代码应该是这样的:

private Handler handler;
private TextView textView1;
private String tag = "ALEX";
private static String IP;
private static int port;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
handler = new Handler();

关于android - Handler.post() 线程,正在崩溃应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20442589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com