在我的活动中初始化服务后,我的应用程序立即变为黑屏。未显示任何错误或警告消息。一段时间后,应用程序已经没有响应,即使在时间限制之后,服务也没有将信息更新到服务器。我希望每分钟后使用该服务将用户的位置不断发送到服务器。服务在我的活动中初始化。我还在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));
}
知道导致黑屏的原因吗?我错过了什么吗? 任何意见将不胜感激!提前谢谢。
答案 0 :(得分:0)
我设法解决了这个问题。显然,如果我在循环开始时运行new CountDownTimer (60000, 1000)
,屏幕将变为黑屏。如果没有弄错,应该不断创建新的CountDownTimer,因为它无法正常运行。正确的方法是取消 While(isUpdateResult)。该函数将不断启动倒计时器,因为有一个.start();在onFinish();之后所以不需要循环。
new CountDownTimer (60000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
//Send information to server
}.start();