我想从BroadcastReceiver调用LocationListener Service,所以即使应用程序没有运行,我也可以在后端每5分钟获取一次设备的当前位置并在服务器上调用我的API。
所以,我用BroadcastReceiver创建了一个类,它将调用我的LocationListener服务。在这项服务中,我想获取位置并将其保存在db。
中问题是,我无法从BroadcastReceiver调用LocationListener服务。 BroadcastReceiver运行良好。
代码,
在AlarmManager中运行BroadcastReceiver。
public void LocationClicked(View view){
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int interval = 10000;
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_SHORT).show();
}
BroadcastReceiver类文件,
public class LocationReceiver extends BroadcastReceiver {
private static int count = 0;
@Override
public void onReceive(Context context, Intent intent) {
count++;
Toast.makeText(context, "I'm running " + count, Toast.LENGTH_SHORT).show();
Intent myIntent = new Intent(context, LocationUpdateService.class);
context.startService(myIntent);
}
}
"我正在跑步"来了。 LocationListerner服务文件,
public class LocationUpdateService extends Service implements LocationListener {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onLocationChanged(Location location) {
double ss = location.getLatitude();
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
}
我需要更改哪些内容才能使其正常工作? 告诉我如果我做错了。