2016-08-15 18 views
0

私のアプリを最小化すると(ホームボタンを押したときに)、私はIntentServiceが停止するという奇妙な問題を抱えています。 IntentServiceにはwhileループがあり、アプリがフォアグラウンドで実行されるまでは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クラスはありますか?これはIntentServiceの問題ではありません。アプリを出た後にボリュームを変更する権限がないという問題があります。

W/System.errの:それはとクラッシュする必要がありjava.lang.SecurityException:注入する別の アプリケーションがINJECT_EVENTS許可

を必要とするには、この権限を使用するために、システムのアプリケーションである必要がありそう、これはあります通常のAndroid搭載端末では不可能です。

+0

はい、まったく同じことがあります。 –

+0

デバイスをルートするのは唯一の方法ですか? –

+0

@KhurshidAbbas残念ながら、それはあまり簡単ではない、おそらく唯一の方法はあなたのデバイスのソースからAndroidをビルドすることです、あなたはもっと読むことができます[ここ](http://stackoverflow.com/questions/3635101/how-to-sign- android-app-with-system-signature) – sswierczek

関連する問題