我遇到了一个奇怪的问题,当我最小化我的应用程序(按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设备上。