我做了一个关于android定时器的东西,就是每秒让textviewi刷新一次。代码如下:
package com.timetry;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;import java.util.Timer;
import java.util.TimerTask;public class TimetryActivity extends Activity {
/** Called when the activity is first created. */
private String tag = "@@@";
Timer timer = new Timer();
private int i = 0;
private TextView text = null;
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
// TODO Auto-generated method stub
super.handleMessage(msg);
int msgId = msg.what;
Log.e(tag, msgId + "");
switch (msgId)
{
case 1:
text.setText("one more per second" + i);
i++;
break;
default:
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView)findViewById(R.id.text);
setTimerTask();
}
@Override
protected void onDestroy()
{
super.onDestroy();
timer.cancel();
}
private void setTimerTask()
{
timer.schedule(new TimerTask()
{
@Override
public void run()
{
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}, 0, 1000); }
}
上面的代码可以运行。我改了下代码:如下
package com.timetry;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;import java.util.Timer;
import java.util.TimerTask;public class TimetryActivity extends Activity {
/** Called when the activity is first created. */
private String tag = "@@@";
Timer timer = new Timer();
private int i = 0;
private TextView text = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView)findViewById(R.id.text);
setTimerTask();
}
@Override
protected void onDestroy()
{
super.onDestroy();
timer.cancel();
}
private void setTimerTask()
{
timer.schedule(new TimerTask()
{
@Override
public void run()
{
text.setText("one more per second" + i);
i++;
}
}, 0, 1000); }
}
这样就不行了,运行的时候没显示,调试的时候会报 source not found。
这是怎么回事,我改的代码有问题吗?
package com.timetry;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;import java.util.Timer;
import java.util.TimerTask;public class TimetryActivity extends Activity {
/** Called when the activity is first created. */
private String tag = "@@@";
Timer timer = new Timer();
private int i = 0;
private TextView text = null;
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
// TODO Auto-generated method stub
super.handleMessage(msg);
int msgId = msg.what;
Log.e(tag, msgId + "");
switch (msgId)
{
case 1:
text.setText("one more per second" + i);
i++;
break;
default:
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView)findViewById(R.id.text);
setTimerTask();
}
@Override
protected void onDestroy()
{
super.onDestroy();
timer.cancel();
}
private void setTimerTask()
{
timer.schedule(new TimerTask()
{
@Override
public void run()
{
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}, 0, 1000); }
}
上面的代码可以运行。我改了下代码:如下
package com.timetry;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;import java.util.Timer;
import java.util.TimerTask;public class TimetryActivity extends Activity {
/** Called when the activity is first created. */
private String tag = "@@@";
Timer timer = new Timer();
private int i = 0;
private TextView text = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView)findViewById(R.id.text);
setTimerTask();
}
@Override
protected void onDestroy()
{
super.onDestroy();
timer.cancel();
}
private void setTimerTask()
{
timer.schedule(new TimerTask()
{
@Override
public void run()
{
text.setText("one more per second" + i);
i++;
}
}, 0, 1000); }
}
这样就不行了,运行的时候没显示,调试的时候会报 source not found。
这是怎么回事,我改的代码有问题吗?
解决方案 »
- 虚拟器出问题了
- android如何调用SDCard中的so文件 或如何动态调用网络下载的so文件
- 看到很多Android程序里面传Context对象,但不知道这个对象怎么理解,对应AP的实例还是什么其它?
- android 电影放映座位图怎么实现?
- 如何将读取出来的数据放到listview中呢
- 关于android模仿QQ登录,数据库用sqlite ,谁有源码,给我发一份好不好,如果不方便只给传关于登录部分的就可以,,,急 谢了。。。
- 怎样把canvas中画的保存到本地啊?
- android开发一个扫描书籍的信息
- xe7开发android,如何去屏幕一点的颜色
- 求解:我在new Thread中执行网络请求,服务端设了个断点,10秒后程序ANR了
- 深圳一年android经验,面试要多少工资合适,一般什么行情?
- 请教android发送按键事件问题
就是我要周期性的做一些事,比如我拿着手机走动,周期性的获得无线路由SSID,这些代码我一定写在handler中吗?
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;import java.util.Timer;
import java.util.TimerTask;public class TimetryActivity extends Activity {
/** Called when the activity is first created. */
private String tag = "@@@";
Timer timer = new Timer();
private int i = 0;
private TextView text = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView)findViewById(R.id.tv1);
setTimerTask();
}
@Override
protected void onDestroy()
{
super.onDestroy();
timer.cancel();
}
private void setTimerTask()
{
timer.schedule(new TimerTask()
{
@Override
public void run()
{
Message message = new Message();
message.what = 1;
Bundle bundle = new Bundle();
bundle.putString("msg", "one more per second" + i);
message.setData(bundle);
handler.sendMessage(message);
i++;
}
}, 0, 1000); }
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
// TODO Auto-generated method stub
super.handleMessage(msg);
int msgId = msg.what;
Log.e(tag, msgId + "");
switch (msgId)
{
case 1:
Bundle bundle = msg.getData();
text.setText(bundle.getString("msg"));
i++;
break;
default:
break;
}
}
};
}
case 1:下面添加如下代码:
mWiFiManager01 = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
mWiFiManager01.startScan();
程序会报错,就是getSystemService这个函数不识别,我放在别的地方没问题阿。其实我想做的东西就是让手机周期性的搜索周围的无线路由。
mWiFiManager01.startScan();