【发布时间】:2024-01-04 18:42:01
【问题描述】:
我正在制作一个 android 应用程序,每隔几个小时将当前用户位置记录到我的服务器。到目前为止,我已经做了一个课程来给我当前的用户位置,并且我还能够将位置数据发送到网络。我还能够在我的应用程序中注册服务以运行,即使我的应用程序已从后台清除。现在我想整合所有这些,但似乎无法整合。
我的主要活动是
public class MainPage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainpage);
Intent i= new Intent(MainPage.this, RunnerService.class);
this.startService(i);
}
}
我的服务是:
public class RunnerService extends Service {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Log.d("SahiyogiHaat", "Service created");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Log.d("SahiyogiHaat", "Service started");
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
那么我应该在哪里创建我的位置跟踪器类的对象来运行服务并每 1 小时访问一次用户位置。除此之外,我尝试如下实现重启广播接收器,并在用户打开手机时从那里实现服务:
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent i= new Intent(context, RunnerService.class);
// potentially add data to the intent
context.startService(i);
}
}
但服务没有启动,但它说“不幸的是应用程序停止工作”,这意味着广播已经收到但有一些问题。 我的清单文件如下:
【问题讨论】:
-
重启后我无法捕捉到异常
-
异常会一直记录在logcat中。应用程序崩溃后的任何时候,只需将您的设备连接到您的机器并运行
adb logcat- 它会显示自设备启动以来的所有事件并包括崩溃的堆栈跟踪。
标签: android gps broadcastreceiver android-service