【问题标题】:Location service is not working Mi devices when app is destroyed当应用程序被销毁时,位置服务无法正常工作 Mi 设备
【发布时间】:2016-12-27 07:40:27
【问题描述】:

这是我在服务中的代码,请让我知道我在哪里遗漏了一些东西。 代码在其他设备上运行问题仅在 Redmi 设备中。

提前致谢。

public class AppLocationServices extends Service implements IAsyncTask{

        @Override
        public IBinder onBind(Intent arg0) {
            return null;
        }

        @Override
        public int onStartCommand(final Intent intent, final int flags,
                                  final int startId) {
            if(getBaseContext()!=null){
                SessionManagement sessionManagement = new SessionManagement(getBaseContext());
                if(sessionManagement.isLoggedIn() && !Util.IsOwner(Util.GetLocalStorage(sessionManagement))){
                    if(getBaseContext()!=null && intent.getExtras()!=null && intent.getExtras().getString("ClassName").equalsIgnoreCase(ReceiverLocationAlarm.class.getName())){
                        Util.SetOnReceiverLocationIntent(getBaseContext());
                        LocationProvider mLocationProvider = new LocationProvider(getBaseContext());
                        mLocationProvider.connect();
                    }
                    else if(getBaseContext()!=null && intent.getExtras()!=null && intent.getExtras().getString("ClassName").equalsIgnoreCase(SenderLocationAlarm.class.getName())){
                        Util.SetOnSenderLocationIntent(getBaseContext());
                        DataBaseHelper dataBaseHelper = new DataBaseHelper(getBaseContext());
                        if(dataBaseHelper.getFromGpsItem().size()>0)
                            new SendLocationToServer(getBaseContext(),AppLocationServices.this).execute();
                    }
                    }else {
                    LocationProvider mLocationProvider = new LocationProvider(getBaseContext());
                    mLocationProvider.disconnect();
                    Util.StopOnReceiverLocationIntent(getContext());
                    Util.StopOnSendLocationIntent(getContext());
                    stopSelf();
                }
            }
            return Service.START_REDELIVER_INTENT;
        }


        @Override
        public Context getContext() {
            return getBaseContext();
        }

        @Override
        public Fragment getFragment() {
            return null;
        }

        @Override
        public void OnPreExecute() {

        }

        @Override
        public void OnPostExecute(String URL, JSONObject jsonObject) {
        }

        @Override
        public void OnErrorMessage(String Message) {

        }


        @Override
        public void onDestroy() {
            super.onDestroy();

        }
    }

【问题讨论】:

    标签: android google-location-services


    【解决方案1】:

    这是 Redmi 设备中出现的特定问题。解决此问题的一种方法是打开 redmi 安全应用程序,打开权限选项卡并启用应用程序的自动启动。否则,您可以继续运行该应用程序。即销毁时自动启动应用程序

    【讨论】:

      【解决方案2】:

      在 MI 设备中,当应用程序关闭(销毁)时,您无法在后台运行服务。很多设备(小米、小米等)都有权限管理器的概念。

      【讨论】:

      • 感谢您的回复,但我已授予应用程序在后台启动的权限。即使那样它也不起作用
      • 在正常情况下,当安卓操作系统关闭服务时,如果给定它会重新启动,但在 MI 设备中,服务一旦自动关闭(而不是权限)就不会启动。你可以在stackoverflow.com/questions/31355084/…阅读它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2017-04-02
      • 1970-01-01
      相关资源
      最近更新 更多