2016-08-15 3 views
0

Я столкнулся со странной проблемой, когда я сворачиваю свое приложение (нажмите главную кнопку), мои IntentService останавливаются. Существует цикл while в IntentService, он отлично работает в IntentService, пока приложение не работает на переднем плане.Как продолжать работу с IntentService, даже когда нажата кнопка «Домой»

IntentService класс выглядит следующим образом:

public class MainService extends IntentService { 

    public MainService() { 
     super("MainService"); 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 
     try { 
      Instrumentation inst = new Instrumentation(); 

      while (true) { 
       inst.sendKeyDownUpSync(KeyEvent.KEYCODE_VOLUME_DOWN); 
      } 
     } catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

И назвал его из моего Activity класса как:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void mainButtonClick(View view) { 
     Intent intentX = new Intent(this, MainService.class); 
     this.startService(intentX); 
    } 
} 

ответ

0

Проверили ли вы журналы? Это не проблема с IntentService, проблема в том, что у вас нет разрешения на изменение тома после того, как вы покинули приложение. Он должен врезаться с:

Вт/System.err: java.lang.SecurityException: Инъекционное другому приложению требуется разрешение INJECT_EVENTS

Вы должны быть системное приложение, чтобы использовать это разрешение, так что это невозможно на обычных устройствах Android.

+0

Да, точно такая же вещь есть. –

+0

Итак, единственный способ - это запустить устройство? –

+0

@KhurshidAbbas, к сожалению, это не так просто, возможно, единственный способ создать Android из источника для вашего устройства, вы можете прочитать больше [здесь] (http://stackoverflow.com/questions/3635101/how-to-sign- Android-приложение-с-система подписи) – sswierczek

Смежные вопросы