Wie wird Toast von einem Dienst nach Abschluss der Hauptaktivität angezeigt?

AKTUALISIEREN Ich bin damit nicht einverstanden, dass dies ein Duplikat ist. Ich suche nach einer Möglichkeit, die Haupt-App zu beenden und trotzdem einen Toast vom Dienst anzuzeigen.

Ima sehr einfache Test-App Ich habe 2 Knöpfe:

Klicken Sie auf eine der Schaltflächen, um einen Dienst mit einer entsprechenden Aktionszeichenfolge ("open" oder "flash") auszuführen. -

OpenActivity.java:

public class OpenActivity extends Activity {
    private Intent mServiceIntent;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_open);
        mServiceIntent = new Intent(this, RegionService.class);
   }

    public void openCar(View v) {
        mServiceIntent.setAction("open");
        startService(mServiceIntent);
    }

RegionService.java:

public class RegionService extends IntentService {
    private static final String TAG = "RegionService";

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.d(TAG, "Received an intent: " + intent);
        String action = intent.getAction();
        Log.d(TAG, "Received an action: " + action);

        if(action.equals("open")) {
            Toast.makeText(this, 
                    getString(R.string.car_opened), 
                    Toast.LENGTH_SHORT).show();
        } 

Leider stürzt meine App ab mit:

D/RegionService(24506): Received an intent: Intent { act=open cmp=de.afarber.mynotification/.RegionService }

D/RegionService(24506): Received an action: open

W/MessageQueue(24506): Handler (android.os.Handler) {422768a8} sending message to a Handler on a dead thread
W/MessageQueue(24506): java.lang.RuntimeException: Handler (android.os.Handler) {422768a8} sending message to a Handler on a dead thread
W/MessageQueue(24506):  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:320)
W/MessageQueue(24506):  at android.os.Handler.enqueueMessage(Handler.java:626)
W/MessageQueue(24506):  at android.os.Handler.sendMessageAtTime(Handler.java:595)
W/MessageQueue(24506):  at android.os.Handler.sendMessageDelayed(Handler.java:566)
W/MessageQueue(24506):  at android.os.Handler.post(Handler.java:326)
W/MessageQueue(24506):  at android.widget.Toast$TN.hide(Toast.java:370)
W/MessageQueue(24506):  at android.app.ITransientNotification$Stub.onTransact(ITransientNotification.java:54)
W/MessageQueue(24506):  at android.os.Binder.execTransact(Binder.java:412)
W/MessageQueue(24506):  at dalvik.system.NativeStart.run(Native Method)

ch frage mich, ob ich ein Anfänger in der Android-Programmierung biWie ein @ angezeigt wiToas vom Service richtig?

Ich glaube, ich habe bereits Toasts auf Android Home gesehen (d. H. Es gab keine Aktivität auf dem Gerätebildschirm und es gab immer noch Toasts).

Mein hintergrund Ich möchte ein Beacon-Gerät von meinem Dienst aus überwachen und Text-Toasts anzeigen - auch wenn meine App geschlossen wurde.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage