求解线程问题,安卓开发,在线等,谢谢
java吧
全部回复
仅看楼主
level 6
凉茶木木 楼主
package com.jeckstan.s01_07_wifioperation;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.net.wifi.ScanResult;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class WifiActivity extends Activity {
/** Called when the activity is first created. */
private TextView allNetWork;
private Button scan;
private Button start;
private Button stop;
private Button check;
private WifiAdmin mWifiAdmin;
// 扫描结果列表
private List<ScanResult> list;
private ScanResult mScanResult;
private StringBuffer sb=new StringBuffer();
Timer timer = new Timer();
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
scan.performClick();
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
class ButtonListener implements OnClickListener{
@Override
public void onClick(View arg0) {
timer.schedule(task,0, 1*1000);
getAllNetWorkList();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scan.performClick();
mWifiAdmin = new WifiAdmin(WifiActivity.this);
init();
}
public void init(){
allNetWork = (TextView) findViewById(R.id.allNetWork);
scan = (Button) findViewById(R.id.scan);
start = (Button) findViewById(R.id.start);
stop = (Button) findViewById(R.id.stop);
check = (Button) findViewById(R.id.check);
scan.setOnClickListener(new ButtonListener());
start.setOnClickListener(new MyListener());
stop.setOnClickListener(new MyListener());
check.setOnClickListener(new MyListener());
}
private class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
// case R.id.scan://扫描网络
// getAllNetWorkList();
// break;
case R.id.start://打开Wifi
mWifiAdmin.openWifi();
Toast.makeText(WifiActivity.this, "当前wifi状态为:"+mWifiAdmin.checkState(), 1).show();
break;
case R.id.stop://关闭Wifi
mWifiAdmin.closeWifi();
Toast.makeText(WifiActivity.this, "当前wifi状态为:"+mWifiAdmin.checkState(), 1).show();
break;
case R.id.check://Wifi状态
Toast.makeText(WifiActivity.this, "当前wifi状态为:"+mWifiAdmin.checkState(), 1).show();
break;
default:
break;
}
}
}
public void getAllNetWorkList(){
// 每次点击扫描之前清空上一次的扫描结果
if(sb!=null){
sb=new StringBuffer();
}
//开始扫描网络
mWifiAdmin.startScan();
list=mWifiAdmin.getWifiList();
if(list!=null){
for(int i=0;i<list.size();i++){
//得到扫描结果
mScanResult=list.get(i);
sb=sb.append(mScanResult.BSSID+" ").append(mScanResult.SSID+" ")
.append(mScanResult.capabilities+" ").append(mScanResult.frequency+" ")
.append(mScanResult.level+"\n\n");
}
allNetWork.setText("扫描到的wifi网络:\n"+sb.toString());
}
}
}
报的错误,
04-17 15:56:50.561: E/PhonePolicy(17019): Could not preload class for phone policy: com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback
04-17 15:56:51.001: E/AndroidRuntime(17019): FATAL EXCEPTION: main
04-17 15:56:51.001: E/AndroidRuntime(17019): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jeckstan.s01_07_wifioperation/com.jeckstan.s01_07_wifioperation.WifiActivity}: java.lang.NullPointerException
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.ActivityThread.access$600(ActivityThread.java:128)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.os.Looper.loop(Looper.java:137)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.ActivityThread.main(ActivityThread.java:4517)
04-17 15:56:51.001: E/AndroidRuntime(17019): at java.lang.reflect.Method.invokeNative(Native Method)
04-17 15:56:51.001: E/AndroidRuntime(17019): at java.lang.reflect.Method.invoke(Method.java:511)
04-17 15:56:51.001: E/AndroidRuntime(17019): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
04-17 15:56:51.001: E/AndroidRuntime(17019): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
04-17 15:56:51.001: E/AndroidRuntime(17019): at dalvik.system.NativeStart.main(Native Method)
04-17 15:56:51.001: E/AndroidRuntime(17019): Caused by: java.lang.NullPointerException
04-17 15:56:51.001: E/AndroidRuntime(17019): at com.jeckstan.s01_07_wifioperation.WifiActivity.onCreate(WifiActivity.java:68)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.Activity.performCreate(Activity.java:4470)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
04-17 15:56:51.001: E/AndroidRuntime(17019): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
04-17 15:56:51.001: E/AndroidRuntime(17019): ... 11 more
2015年04月17日 08点04分 1
level 7
不需要继承threae类或者实现runnable接口么?那个timetask
2015年04月17日 09点04分 2
level 12
Button scan没有初始化
然后 scan.performClick();
自然为空指针
2015年04月17日 10点04分 3
1