我需要从onReceive方法中获得位置更新。当onReceive()调用全球定位系统启动2-3秒之后,为什么?
怎么修??我想知道位置的最新消息。请帮帮忙。
注意:在重新启动我的手机时调用了onReceive方法
java代码:
public class BootReceiver extends BroadcastReceiver implements LocationListener {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))
{
LocationManager LM2=(LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
LM2.requestLocationUpdates("gps",5000, 0, this);
}
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}Manifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<receiver android:name="com.my.package.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>发布于 2014-01-24 17:06:52
当onReceive()调用全球定位系统启动2-3秒之后,为什么呢?
因为你的进程被终止了。
发布于 2014-01-24 19:46:38
谢谢你们的帮助,我只需要做一个服务
onReceive方法将是
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))
{
Intent i= new Intent(context, MyService.class);
context.startService(i);
}
}MyService类
public class MyService extends Service implements LocationListener {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//TODO do something useful
LocationManager LM2=(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LM2.requestLocationUpdates("gps",5000, 0, this);
return Service.START_STICKY;
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}我需要在manifest.xml上注册我的服务
<service
android:name="com.my.package.MyService"
android:icon="@drawable/icon"
android:label="Service name"
>
</service>https://stackoverflow.com/questions/21338140
复制相似问题