Sends SMS in Background when Power Button is press

2019-09-26 08:13发布

问题:

Is there a way to tell my app to do something while it's running in the Background? What i try to do is to send a sms when i press the Power Button. This is what i wrote and it works currently while i'm inside the app:

  public boolean onKeyDown(int keyCode, KeyEvent event) {
    startService(new Intent(this, BackgroundService.class));
        if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(phoneNo, null, "Ich brauche Hilfe! Hier ist mein aktueller Standort, kannst du mir helfen kommen?" + "\n" + "http://maps.google.com/?q=" + lat + "," + lon, null, null);
            return true;
        }
    return super.onKeyDown(keyCode, event);
}

回答1:

When your app is not visible it isn't "running in the background." It's in a dormant state waiting to be restored or released. To have it explicitly perform some operation while it is in this state, you need to set up a background service that will run independently from your app. To get started, check out this Google guide: http://developer.android.com/guide/components/services.html