1

デバイスが加速度計を検出した場合、現在 IntentService からトーストを表示しようとしています。そのために、Handler を実装できることを調べて学びました。しかし、それは完全には機能していません。コードはエラーなしでエミュレーター上でコンパイルおよび実行されますが、トーストは表示されません。コードの間違いを見つけるための助けが得られるかどうか疑問に思っていました。コードを以下に示します。

どんな助けでも大歓迎です!

public class AccelService extends IntentService implements SensorEventListener{
    private SensorManager mySensorManager;
    private Handler toastHandler;

    public AccelService(){
        super("AccelerometerIntentService");
    }
    ...
    private class ToastRunnable implements Runnable{
        String toastText;
        public ToastRunnable(String text){
            toastText = text;
        }
        @Override
        public void run(){
            Toast.makeText(getApplicationContext(), toastText, Toast.LENGTH_SHORT).show();
        }
    }
    @Override
    protected void onHandleIntent(Intent intent){
        toastHandler = new Handler();
        initialize();
    }
    public void initialize(){
        mySensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        if(mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null){
            toastHandler.post(new ToastRunnable("Accelerometer Detected!"));
        }
    }
    ...
}
4

1 に答える 1