百度地图为什么后台耗电这么多

百度地图为什么后台耗电这么多_华为mate2吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:5,912贴子:
百度地图为什么后台耗电这么多收藏
我禁止后台了,gps也没开,百度地图更是一秒都没打开,怎么会这样
暑期必备游戏,问道陪你爽一夏
卸载就行了
显示错误而已啦,想想也不可能,难道你卸载能省一半电?
换了腾讯地图,能离线导航。马某人偶尔也良心一把
登录百度帐号推荐应用2079人阅读
此实现可以在后台持续进行定位,将经纬度信息传给服务器或者其他操作。
在定位之前请先准备好:百度地图定位SDK和相关权限配置(具体参照Baidu官方文档)。
后台持续重复定位,具体实现是通过调用自定义服务实现,在服务中创建定时器,在定时器中定时进行定位。
自定义服务,在此服务中进行定位。注意要在清单配置文件中注册该服务。
public class LocationServices extends Service{
public LatL
private String strLocationP
private String strLocationC
private String strLocationD
private String strLocationS
private String strLocationStreetN
private String strLocationAddrS
private LocationClient mLocationClient =null;
public MyLocationListener mMyLocationListener = new MyLocationListener();;
private Timer mTimer = null;
private TimerTask mTimerTask = null;
private boolean isStop = false;
public void onCreate() {
super.onCreate();
mLocationClient = new LocationClient(getApplicationContext());
mLocationClient.setLocOption(setLocationClientOption());
mLocationClient.registerLocationListener(mMyLocationListener);
public int onStartCommand(Intent intent, int flags, int startId) {
if (!isStop) {
Log.i("tag", "定时器启动");
startTimer();
return super.onStartCommand(intent, flags, startId);
public void onDestroy() {
if (mLocationClient!=null) {
mLocationClient.stop();
super.onDestroy();
if (isStop) {
Log.i("tag", "定时器服务停止");
stopTimer();
* 定时器 每隔一段时间执行一次
private void startTimer() {
isStop = true;
if (mTimer == null) {
mTimer = new Timer();
if (mTimerTask == null) {
mTimerTask = new TimerTask() {
public void run() {
Log.d("tag", "isStop="+isStop);
Log.d("tag", "mMyLocationListener="+mMyLocationListener);
mLocationClient.start();
Log.d("tag", "mLocationClient.start()");
Log.d("tag", "mLocationClient=="+mLocationClient);
Thread.sleep(1000*3);
} catch (InterruptedException e) {
e.printStackTrace();
} while (isStop);
if (mTimer != null && mTimerTask != null) {
Log.d("tag", "mTimer.schedule(mTimerTask, delay)");
mTimer.schedule(mTimerTask, 0);
* 停止定时器,初始化定时器开关
private void stopTimer() {
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
if (mTimerTask != null) {
mTimerTask.cancel();
mTimerTask = null;
isStop = false;
Log.d("tag", "isStop="+isStop);
public IBinder onBind(Intent intent) {
return null;
* 定位客户端参数设定,更多参数设置,查看百度官方文档
private LocationClientOption setLocationClientOption() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(com.baidu.location.LocationClientOption.LocationMode.Hight_Accuracy);
option.setScanSpan(1000);
option.setCoorType("bd09ll");
option.setOpenGps(true);
option.setIsNeedLocationDescribe(true);
option.setIsNeedAddress(true);
option.setIsNeedLocationPoiList(true);
option.setLocationNotify(true);
* 定位监听器
public class MyLocationListener implements BDLocationListener {
public void onReceiveLocation(BDLocation location) {
if (location==null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
latlng = new LatLng(lat, lng);
if ("".equals(location.getProvince())) {
strLocationProvince = "未知省";
strLocationProvince = location.getProvince();
if ("".equals(location.getCity())) {
strLocationCity = "未知市";
strLocationCity = location.getCity();
if ("".equals(location.getDistrict())) {
strLocationDistrict = "未知区";
strLocationDistrict = location.getDistrict();
if ("".equals(location.getStreet())) {
strLocationStreet = "未知街道";
strLocationStreet = location.getStreet();
if ("".equals(location.getStreetNumber())) {
strLocationStreetNumber = "";
strLocationStreetNumber =location.getStreetNumber();
if ("".equals(location.getAddrStr())) {
strLocationAddrStr = "";
strLocationAddrStr =location.getAddrStr();
Log.d("tag", "latlng.lat="+lat);
Log.d("tag", "latlng.lng="+lng);
Log.d("tag", "strLocationProvince="+strLocationProvince);
Log.d("tag", "strLocationCity="+strLocationCity);
Log.d("tag", "strLocationDistrict="+strLocationDistrict);
if (mLocationClient.isStarted()) {
Log.d("tag", "mLocationClient.isStarted()==&mLocationClient.stop()");
mLocationClient.stop();
在Application中初始化SDK,如果不需要在Application中初始化,在MainActivity中setContentView方法之前初始化也可以。百度官方建议在Application中初始化。
public class MyApplication extends Application{
public void onCreate() {
super.onCreate();
SDKInitializer.initialize(this);
在MainActivity中开启和关闭服务。
public class MainActivity extends Activity {
private Button startS
private Button stopS
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService = (Button) findViewById(R.id.start_service);
stopService = (Button) findViewById(R.id.stop_service);
startService.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent startIntent = new Intent(MainActivity.this, LocationServices.class);
startService(startIntent);
stopService.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent stopIntent = new Intent(MainActivity.this, LocationServices.class);
stopService(stopIntent);
protected void onDestroy() {
Log.d("tag", "MainActivity.onDestroy()");
Intent stopIntent = new Intent(MainActivity.this, LocationServices.class);
stopService(stopIntent);
super.onDestroy();
MainActivity.xml布局。
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.bdlocationdemo.activity.MainActivity" &
android:id="@+id/stop_service"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="StopService" /&
android:id="@+id/start_service"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="77dp"
android:text="StartService" /&
特别注意:
在清单配置文件中,需要声明百度定位服务,这样才能重复定位,否则服务开启后只会执行第一次定位,后面执行的LocationClient.start();方法,都不会执行定位监听器BDLocationListener中的代码,这里需要特别留意。
android:name="com.example.bdlocationdemo.services.LocationServices"
android:enabled="true"
android:exported="true" &
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" &
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11480次
排名:千里之外
原创:18篇
(1)(2)(3)(2)(7)(3)(5)(1)(1)经验773 米
在线时间5 小时
版本6.5.26
积分 567, 距离下一级还需 1433 积分
积分 567, 距离下一级还需 1433 积分
机型小米Note 移动4G/联通4G
签到次数65
MIUI版本6.5.26
下拉菜单里的GPS已经关闭了,但是电池记录里面显示GPS还是一直耗电.应该是百度地图导致的。具体见图
1.允许百度地图定位,打开一次百度地图之后,即使之后下拉菜单里的GPS已经关闭,后台GPS还是一直被调用,
2.把百度地图的定位权限改成询问,不再打开百度地图,没问题。 但是再打开百度地图时它还会要求你允许,一旦允许之后就一直打开GPS了。
(182.42 KB, 下载次数: 1)
17:13 上传
(86.23 KB, 下载次数: 1)
17:13 上传
(160.82 KB, 下载次数: 1)
17:13 上传
遇到的人越多,MIUI开发组会越关注
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
经验4678 米
在线时间138 小时
版本5.12.31
积分 5468, 距离下一级还需 14532 积分
积分 5468, 距离下一级还需 14532 积分
机型小米手机3/4 WCDMA版
签到次数45
MIUI版本5.12.31
把gps关了...哈哈
经验773 米
在线时间5 小时
版本6.5.26
积分 567, 距离下一级还需 1433 积分
积分 567, 距离下一级还需 1433 积分
机型小米Note 移动4G/联通4G
签到次数65
MIUI版本6.5.26
把gps关了...哈哈
关了没用的。虽然下拉那里关了,但是后台还是一直显示的
经验161 米
在线时间6 小时
版本6.11.3
积分 159, 距离下一级还需 41 积分
积分 159, 距离下一级还需 41 积分
机型小米Note 移动4G/联通4G
签到次数10
MIUI版本6.11.3
通过手机发布
本帖最后由 herbertming 于
15:47 编辑
一样,只要开过gps开关,即使马上关闭,后台电量gps一直显示在耗电
(95.81 KB, 下载次数: 1)
15:47 上传
经验161 米
在线时间6 小时
版本6.11.3
积分 159, 距离下一级还需 41 积分
积分 159, 距离下一级还需 41 积分
机型小米Note 移动4G/联通4G
签到次数10
MIUI版本6.11.3
莫名奇妙的,gps就开了1分钟都不到,百度地图也退出的,后台一直在调用耗电
经验773 米
在线时间5 小时
版本6.5.26
积分 567, 距离下一级还需 1433 积分
积分 567, 距离下一级还需 1433 积分
机型小米Note 移动4G/联通4G
签到次数65
MIUI版本6.5.26
通过手机发布
herbertming 发表于
莫名奇妙的,gps就开了1分钟都不到,百度地图也退出的,后台一直在调用耗电 ...
我发现gps开关顺序有影响,你每次要把百度地图,滴滴打车之类的使用gps的软件先关闭,最后再关闭gps开关,这样就好了。
经验2792 米
在线时间68 小时
版本7.6.12
机型小米手机6
签到次数139
MIUI版本7.6.12
设置长按返回关闭程序不就行了,强杀百度地图
经验3627 米
在线时间18 小时
版本7.2.28
机型小米Note 移动4G/联通4G
签到次数49
MIUI版本7.2.28
MIUI 7纪念勋章
MIUI五周年
MIUI五周年纪念勋章
已关注极客秀微信
已关注微信
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 3000万
MIUI 3000万发烧友纪念勋章
MIUI 2000万
MIUI 2000万发烧友纪念勋章
1000万用户纪念勋章
MIUI1000万用户纪念勋章
MIUI 100周
100周发布纪念勋章
一周年纪念勋章
一周年纪念勋章
Copyright (C) 2017 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号红米手机 &
电视盒子 &
智能硬件 &
潜力级手机控
扫码下载App一键签到 升级加速
百度地图是病毒吗?退出程序还在后台调用GPS消耗电量
&来自老版论坛
扫一扫!手机看帖更爽
如题,真是郁闷,退出程序,关掉百度相关进程,禁用GPS,竟然还在后台调用GPS, 2000mAh的电池伤不起啊,要怎么办?删掉百度地图吗?看图
百度进程已关
百度地图各时段耗电量33& && && && &34& && && && && && && && && && && && && & 41
才开几分钟百度地图,GPS一直没停,已2小时多了
扫描二维码,手机查看本帖
·来自老版论坛
忘了介绍手机的型号了。红米电信1S
京ICP证110507号 京ICP备号查看: 1176|回复: 1
这个百度地图怎么老是在后台偷偷运行?关了自启动的
请输入验证码:
百度全家桶自动唤醒很正常 包括有使用百度定位的软件,都会让百度地图嚣张起来。如果系统对互相唤醒控制的不好就会这样。看一下有没有关自启权限。可以下载绿色守护使用非root模式来关屏清理后台。root以后才能彻底控制。
移动叔叔. 版权所有,专业的网络售后平台 (
商务合作||||

我要回帖

更多关于 百度地图耗电 的文章

 

随机推荐