0

サービスに関するAndroid Webサイトの例を台無しにしました。このサービスは、トーストを呼び出すことを目的としています。ボタンの onClick メソッドを使用してサービスを開始します。それは機能しますが、乾杯は決して終わりません! プロセスが完了した後、 IntentService は明確に停止すると思いました。

import android.app.IntentService;
import android.content.Intent;
import android.widget.Toast;

public class Enslaved extends IntentService {
     public Enslaved() {
        super("Enslaved");
     }


     @Override
     protected void onHandleIntent(Intent intent) {
         Toast.makeText(this, "Starting service", Toast.LENGTH_SHORT).show();
     }

 }
4

1 に答える 1

5

私も一度やったことがありますが、本当にばかげていると感じました...

Toast への参照を保存して、 でキャンセルできますonDestroy()。または、そのような短期間のサービスで UI を操作しないでください。

Toast toast;

@Override
protected void onHandleIntent(Intent intent) {
    toast = Toast.makeText(this, "Starting service", Toast.LENGTH_SHORT);
    toast.show();
}

@Override
public void onDestroy() {
    toast.cancel();
}
于 2012-12-31T19:32:19.313 に答える