2016-03-25 3 views
0

ハンドラクラスである内部クラスを使用してサービスクラスを作成しようとしていますが残念ながらこのクラスのhandler.obtainMessage()にアクセスできません。誰にでもこれについての提案はできますか?サービスクラスのサービスクラスのmyHandler.obtainMessage()はアンドロイドでは使用できません

ソースコード:

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(); 
    } 

} 
+1

なぜあなたはできないと思いますか?それには問題ありません。エラーが発生した場合は、投稿してください。 –

答えて

1

あなたが輸入間違っHandlerクラスを持っています。 java.util.logging.Handlerではなく、android.os.Handlerにする必要があります。

関連する問題