首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从BOOT_COMPLETED接收器请求位置更新?

从BOOT_COMPLETED接收器请求位置更新?
EN

Stack Overflow用户
提问于 2014-01-24 16:55:44
回答 2查看 723关注 0票数 0

我需要从onReceive方法中获得位置更新。当onReceive()调用全球定位系统启动2-3秒之后,为什么?

怎么修??我想知道位置的最新消息。请帮帮忙。

注意:在重新启动我的手机时调用了onReceive方法

java代码:

代码语言:javascript
复制
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

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-24 17:06:52

当onReceive()调用全球定位系统启动2-3秒之后,为什么呢?

因为你的进程被终止了。

票数 -1
EN

Stack Overflow用户

发布于 2014-01-24 19:46:38

谢谢你们的帮助,我只需要做一个服务

onReceive方法将是

代码语言:javascript
复制
@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类

代码语言:javascript
复制
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上注册我的服务

代码语言:javascript
复制
<service
 android:name="com.my.package.MyService"
 android:icon="@drawable/icon"
 android:label="Service name"
 >
 </service>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21338140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档