扫描周围的wifi热点,代码如下,我希望它能每隔10分钟扫描一次,是不是用Thread.Sleep()方法呢?
具体怎么用能给我讲一下吗,请大家帮帮忙,谢谢了
package com.example.wifitest1;import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends Activity {
private TextView tv;
private Button btn;
// wifi管理器
private WifiManager wifimanager;
// 扫描结果
private ScanResult result;
// 扫描结果列表
private List<ScanResult> scanlist; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
startScan();
printList();
}
// 打印出扫描的wifi
private void printList() {
// 定义一个可变的字符串
StringBuilder sb = new StringBuilder(); if (scanlist != null) {
for (int i = 0; i < scanlist.size(); i++) {
result = scanlist.get(i);
sb.append(result.toString()).append("\n");
}
tv.setText(sb.toString());
}
}
// 开始扫描
private void startScan() {
if (!wifimanager.isWifiEnabled()) {
wifimanager.setWifiEnabled(true);
}
wifimanager.saveConfiguration();
scanlist = wifimanager.getScanResults();
}
// 初始化
private void init() {
wifimanager = (WifiManager)MainActivity.this.getSystemService(Context.WIFI_SERVICE);
tv = (TextView) findViewById(R.id.textView1);
btn = (Button) findViewById(R.id.button1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}}
具体怎么用能给我讲一下吗,请大家帮帮忙,谢谢了
package com.example.wifitest1;import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends Activity {
private TextView tv;
private Button btn;
// wifi管理器
private WifiManager wifimanager;
// 扫描结果
private ScanResult result;
// 扫描结果列表
private List<ScanResult> scanlist; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
startScan();
printList();
}
// 打印出扫描的wifi
private void printList() {
// 定义一个可变的字符串
StringBuilder sb = new StringBuilder(); if (scanlist != null) {
for (int i = 0; i < scanlist.size(); i++) {
result = scanlist.get(i);
sb.append(result.toString()).append("\n");
}
tv.setText(sb.toString());
}
}
// 开始扫描
private void startScan() {
if (!wifimanager.isWifiEnabled()) {
wifimanager.setWifiEnabled(true);
}
wifimanager.saveConfiguration();
scanlist = wifimanager.getScanResults();
}
// 初始化
private void init() {
wifimanager = (WifiManager)MainActivity.this.getSystemService(Context.WIFI_SERVICE);
tv = (TextView) findViewById(R.id.textView1);
btn = (Button) findViewById(R.id.button1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}}
{
@Override
public void run()
{
while(true)
{
try
{
Thread.sleep(600000); //延迟10分钟
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
//执行扫描热点
}
}
}).start();
[code]wait的方式:
[code=Java]
new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
synchronized(this)
{
try
{
wait(600000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//执行扫描热点
}
}
}).start();
Activity不在最前面参与人交互时会被系统kill掉
设置了定时也没用