2016-12-27 41 views
1

这里是我在服务中的代码,请让我知道我错过了什么。 代码工作在其他设备的问题是只在红米设备。当应用程序被破坏时,位置服务不起作用Mi设备

在此先感谢。

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(); 

     } 
    } 

回答

0

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

+0

感谢它正在使用自动启动。 –

0

在MI设备中,当应用程序关闭(销毁)时,您无法在后台运行服务。许多设备(xiomi,mi等)有许可经理的概念。

+0

感谢您的回复,但我已授予应用程序在后台启动的权限。即使那么它不工作 –

+0

在通常情况下,当通过android操作系统关闭服务时,如果给定,它会重新启动,但是在MI设备中,服务在自动关闭(而不是自动关闭)后不会启动。你可以阅读它在http://stackoverflow.com/questions/31355084/how-to-keep-my-app-service-keep-running-even-if-is-closed-from-task-manger-i –

相关问题