myHandler.obtainMessage () ist in der Serviceklasse in android @ nicht zuläss

Ich versuche, eine Serviceklasse mit einer inneren Klasse zu erstellen, die eine Handler-Klasse ist. Leider kann ich in dieser Klasse nicht auf handler.obtainMessage () zugreifen. Kann jemand Vorschläge dazu machen?

Quellcode für die Serviceklasse:

public class MyService extends Service {

    private MyHandler myHandler;

    private final class MyHandler extends Handler {
        public MyHandler(Looper looper) {
            super(looper);
        }


        public void handleMessage(Message msg) {
            try {
                Thread.sleep(5000);
                // use the unique startId so you don't stop the
                // service while processing other requests
                stopSelfResult(msg.arg1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void close() {

        }

        @Override
        public void flush() {

        }

        @Override
        public void publish(LogRecord record) {

        }
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "Service Created", Toast.LENGTH_SHORT).show();
        // Create a new HandlerThread with a specified priority
        HandlerThread thread = new  HandlerThread("MyHandlerThread",Thread.NORM_PRIORITY);
        // Start the handler thread so that our Handler queue will start
        // processing messages
        thread.start();
        // Run the handler using the new HandlerThread
        myHandler = new MyHandler(thread.getLooper());
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Message msg = myHandler.obtainMessage();
        msg.arg1 = startId;
        myHandler.sendMessage(msg);
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "Service Done", Toast.LENGTH_SHORT).show();
    }

}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage