2016-12-27 72 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 –

相關問題