0

在我的活动中初始化服务后,我的应用程序立即变成黑屏。没有显示错误或警告消息。过了一会儿,应用程序已经没有响应,即使在时间限制之后,服务也没有将信息更新到服务器。我想使用该服务在每分钟后不断地将用户的位置发送到服务器。服务在我的活动中初始化。我还在 AndroidManifest.xml 中包含了该服务。

LocationService 下面的代码是我的服务结构

public class LocationService extends Service{

@Override

public IBinder onBind(Intent arg0){
    return null;
}


private String TAG = "LocationService";


@Override
public void onCreate(){
    super.onCreate();
            boolean isUpdateResult = true;

    try{
        while(isUpdateResult){

             new CountDownTimer (60000, 1000) {



                 public void onTick(long millisUntilFinished) {

                 }

                 public void onFinish() {
                   //Send information to server                          

                }.start();
        }
    }
    finally{

    }
}

@Override
public void onDestroy(){
    super.onDestroy();
}
}

以下是我在主要活动中调用该服务的方式。

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.display_screen);

    startService(new Intent(Web_Slider.this,
            LocationService.class));
    }

知道是什么原因导致黑屏吗?我在这里错过了什么吗?任何意见将不胜感激!先感谢您。

4

1 回答 1

0

我设法解决了这个问题。显然,如果我new CountDownTimer (60000, 1000)在循环的开头运行,屏幕将变成黑屏。如果没有记错,是由于不断创建新的 CountDownTimer 导致它无法正常运行。正确的放置方法是去掉 While(isUpdateResult)。该函数将不断启动倒数计时器,因为有一个 .start(); 在 onFinish(); 之后。所以不需要while循环。

         new CountDownTimer (60000, 1000) {



             public void onTick(long millisUntilFinished) {

             }

             public void onFinish() {
               //Send information to server                          

            }.start();
于 2012-12-14T09:25:09.917 回答