Android 处理程序计时器不工作
我试图为我的程序创建一个小计时器,但下面的代码不起作用,我找不到问题Android 处理程序计时器不工作,android,timer,Android,Timer,我试图为我的程序创建一个小计时器,但下面的代码不起作用,我找不到问题 private int mInterval = 5000; private Handler mHandler; // at the bottom of my onCreate() methode: mHandler = new Handler(); startRepeatingTask(); } // on create ends here Runnable mStatusChecker = new
private int mInterval = 5000;
private Handler mHandler;
// at the bottom of my onCreate() methode:
mHandler = new Handler();
startRepeatingTask();
}
// on create ends here
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
myview.loadUrl(readFromFile());
mHandler.postDelayed(mStatusChecker, mInterval);
}
};
void startRepeatingTask() {
mStatusChecker.run();
}
非常感谢您的帮助。使用Handler.post或Handler.postdayed启动处理程序
private int mInterval = 5000;
private Handler mHandler;
// at the bottom of my onCreate() methode:
mHandler = new Handler();
mHandler.post(mStatusChecker);
//mHandler.postDelayed(mStatusChecker, mInterval);//or use this method
//startRepeatingTask();
// on create ends here
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
myview.loadUrl(readFromFile());
mHandler.postDelayed(mStatusChecker, mInterval);
}
};
//void startRepeatingTask() {
// mStatusChecker.run();
//}
您可能需要为存储中的读取文件添加android.permission.WRITE_EXTERNAL_存储,并为加载url添加android.permission.INTERNET。类似的操作应该可以:
//set variables
private int mInterval = 5000;
private Handler handler = new Handler();
//start runnable
runme.run();
private Runnable runme = new Runnable()
{
public void run()
{
//repeat after 5000 milliseconds
handler.postDelayed(this, mInterval );
}
};
//stop runnable
handler.removeCallbacks(runme);
试试这个
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
// do something here...
handler.postDelayed(this, 5000); // for interval...
}
};
handler.postDelayed(runnable, 2000);
试试这个
private int mInterval = 5000;
private Handler mHandler;
// at the bottom of my onCreate() methode:
mHandler = new Handler();
mHandler.postDelayed(mStatusChecker,mInterval);
}
// on create ends here
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
myview.loadUrl(readFromFile());
//if you want to repeat the thread infinitely,then add below code also. Else remove it
mHandler.postDelayed(mStatusChecker, mInterval);
}
};
你能发布一些事故日志吗?使用postDelayed,它可以工作5秒,当处理程序被称为Crassesit的fileNotFound异常时,代码找不到文件,请确保url.txt在目录中,同时,尝试检查权限,我发现权限被拒绝。这种情况发生是因为我从我的桌面记录了这一情况。在我的智能手机上,readFromFile功能运行良好。如果使用自定义ROM(如cyanogenmod),则会出现此异常。你可以试着补充,如果它不起作用,就没有办法阻止它。你的问题解决了吗?