有人能帮我看看这个代码有什么错误吗?一按就停止运行了

iwowicool 2016-03-25 09:06:50
this.btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根

try {
MainActivity.this.udpcl.UDPClientRun(data2);
} catch (IOException e) {
// TODO 自动生成的 catch 块
toastText("连接错误!请检查是否连接硬件的wifi");
}

udpcl.UDPClientStop();

tv1.setText(MainActivity.this.udpse.UDPServiceRun().toString());
udpse.UDPSeverStop();
}
});
...全文
191 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingzhong128 2016-03-27
  • 打赏
  • 举报
回复
因为android的strict模式不允许在主线程中执行网络访问这类需要阻塞的请求,所以一旦在主线成运行立即会报异常 handler.postDelay的代码实际上还是在UI线程中执行的,所以你一点击就会崩溃。 建议楼主使用AsyncTask来做网络请求处理
iwowicool 2016-03-26
  • 打赏
  • 举报
回复
package com.example.esp8266test; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.io.IOException; import java.io.UnsupportedEncodingException; public class MainActivity extends Activity { public Button btn1, btn2,test; String led1 = "LED=1", led2 = "LED=0"; UDPClient udpcl= new UDPClient() ; UDPService udpse=new UDPService() ; byte data1[]; byte data2[]; public TextView tv1; public void toastText(String message) { Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } Handler handler = new Handler(); //要用handler来处理多线程可以使用runnable接口,这里先定义该接口 //线程中运行该接口的run函数 Runnable update_thread1 = new Runnable() { public void run() { //线程每次执行时输出"UpdateThread..."文字,且自动换行 //textview的append功能和Qt中的append类似,不会覆盖前面 //的内容,只是Qt中的append默认是自动换行模式 Log.e("btn1","btn1 ok"); try { MainActivity.this.udpcl.UDPClientRun(data1); } catch (IOException e) { // TODO 自动生成的 catch 块 toastText("连接错误!请检查是否连接硬件的wifi"); } udpcl.UDPClientStop(); tv1.setText(udpse.UDPServiceRun().toString()); udpse.UDPSeverStop(); //延时1s后又将线程加入到线程队列中 handler.postDelayed(update_thread1, 10000); } }; Runnable update_thread2 = new Runnable() { public void run() { //线程每次执行时输出"UpdateThread..."文字,且自动换行 //textview的append功能和Qt中的append类似,不会覆盖前面 //的内容,只是Qt中的append默认是自动换行模式 Log.e("btn2","btn2 ok"); try { MainActivity.this.udpcl.UDPClientRun(data2); } catch (IOException e) { // TODO 自动生成的 catch 块 toastText("连接错误!请检查是否连接硬件的wifi"); } udpcl.UDPClientStop(); tv1.setText(MainActivity.this.udpse.UDPServiceRun().toString()); udpse.UDPSeverStop(); //延时1s后又将线程加入到线程队列中 handler.postDelayed(update_thread2, 1000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.btn1 = (Button) findViewById(R.id.button1); this.btn2 = (Button) findViewById(R.id.button2); this.test =(Button) findViewById(R.id.test); tv1 = (TextView) findViewById(R.id.textView1); Log.e("OK","lancher ok"); try { data1 = this.led1.getBytes("GBK"); } catch (UnsupportedEncodingException e1) { // TODO 自动生成的 catch 块 } //$NON-NLS-1$ try { data2 = this.led2.getBytes("GBK"); } catch (UnsupportedEncodingException e1) { // TODO 自动生成的 catch 块 toastText("字符不对"); } // 换成服务器端IP this.btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 handler.post(update_thread1); Log.e("btn1","btn1 ok"); handler.removeCallbacks(update_thread1); Log.e("btn1","btn1 ok"); } }); this.btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 handler.post(update_thread2); handler.removeCallbacks(update_thread2); } }); this.test.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 tv1.setText("good"); //$NON-NLS-1$ toastText("OK"); } }); } }
iwowicool 2016-03-26
  • 打赏
  • 举报
回复
a774057695 不好意思对我很有用,请再帮我看看吧,板砖点错了!!!!!
iwowicool 2016-03-26
  • 打赏
  • 举报
回复
两个类引用了http://blog.csdn.net/yf210yf/article/details/6954975的代码
xiaomike618 2016-03-26
  • 打赏
  • 举报
回复
楼主,程序报错,最好是把错误日志贴出来,而且自己要会懂得看日志。我怀疑是不是你在主线程执行网络连接造成的
leobert_lan 2016-03-25
  • 打赏
  • 举报
回复
缺乏关键代码和错误log,这让人怎么帮你啊,提问题要细致一点啊。看起来有这么几个可能:空指针异常,也就是有些类实例没有实例化。主线程耗时操作(以前是anr,现在好像直接抛出异常),网络访问权限,看起来有个UDP传输?

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧