如何在Home键被按下的情况下继续运行IntentService



我遇到了一个奇怪的问题,当我最小化我的应用程序(按home键)我的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);
    }
}

你检查日志了吗?这不是IntentService的问题,问题是你离开应用程序后没有权限改变音量。它应该崩溃:

W/系统。err: java.lang.SecurityException: inject to another应用程序需要INJECT_EVENTS权限

你需要一个系统应用程序来使用这个权限,所以这是不可能在普通的Android设备上。

相关内容

最新更新