从BroadcastReceiver调用LocationListener服务

时间:2015-12-13 04:19:30

标签: android broadcastreceiver android-service android-location locationlistener

我想从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) {

    }
}

我需要更改哪些内容才能使其正常工作? 告诉我如果我做错了。

0 个答案:

没有答案