相关疑难解决方法(0)

Android - 使用Timer和TimerTask控制任务?

我目前正在尝试在我的Android应用程序中设置WiFi扫描,每隔30秒扫描一次WiFi接入点.

我已经使用Timer和TimerTask以我需要的间隔正确运行扫描.

但是我希望能够在用户按下按钮时停止并开始扫描,我当前无法停止然后重新启动Timer和TimerTask.

这是我的代码

TimerTask scanTask;
final Handler handler = new Handler();
Timer t = new Timer();

public void doWifiScan(){

scanTask = new TimerTask() {
        public void run() {
                handler.post(new Runnable() {
                        public void run() {
                         wifiManager.scan(context); 
                         Log.d("TIMER", "Timer set off");
                        }
               });
        }};


    t.schedule(scanTask, 300, 30000); 

 }

  public void stopScan(){

   if(scanTask!=null){
      Log.d("TIMER", "timer canceled");
      scanTask.cancel();
 }

}
Run Code Online (Sandbox Code Playgroud)

所以Timer和Task启动正常并且扫描每30秒发生一次但是我不能让它停止,我可以停止Timer但是任务仍然发生并且scanTask.cancel()似乎也不起作用.

有一个更好的方法吗?或者我在Timer/TimerTask类中遗漏了什么?

android timer scheduled-tasks

37
推荐指数
3
解决办法
8万
查看次数

在android中自动启动新活动

我正在创建一个Android应用程序.我有一个logo screen(Activity)然后是我的home screen(another activity).我希望当我启动我的应用程序时,我的徽标屏幕应该会在2秒后自动显示我的主屏幕.任何人都可以向我建议我应该做什么?

android android-activity

5
推荐指数
1
解决办法
5623
查看次数