Обработчик handleMessage не вызывается - PullRequest
0 голосов
/ 31 декабря 2018

Я использую простой обработчик, и даже когда я выполняю handler.sendMessage (), метод handleMessage не вызывается.

Вот определение обработчика:

protected static class TimeoutHandler extends Handler {
    private final WeakReference<PROQuestion> activity;

    public TimeoutHandler(PROQuestion activity) {
        this.activity = new WeakReference<PROQuestion>(activity);
    }

    @Override
    public void handleMessage(Message msg) { //never gets called
        boolean firstScreen = true;
        if (activity.get() == null) {
            removeCallbacksAndMessages(0);
        } else {
            Intent startNewActivityOpen = null;  
            startNewActivityOpen = new Intent(activity.get(), Home.class);

            startNewActivityOpen.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            Bundle bundle = activity.get().getIntent().getExtras();
            if (bundle != null) startNewActivityOpen.putExtras(bundle);
            activity.get().startActivity(startNewActivityOpen);

            activity.get().finish();
   }
 }

Я вызываю обработчик в главном потоке моего onCreate ():

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   TimeoutHandler handlerTimeout = new TimeoutHandler(this);

   if (handlerTimeout != null) {
        removeTimeout();
        Message message = handlerTimeout.obtainMessage();
        message.what = 100;
        handlerTimeout.sendMessage(message);
        //handlerTimeout.sendMessageAtTime(message, SystemClock.uptimeMillis() + GlobalVars.longTimeout);
    }
    if (handlerTimeout.hasMessages(100)) { //returns true
        Log.d(getClass().getSimpleName(),"messages found");
    }
 }

Почему метод handleMessageникогда не звонил?Нет сообщений об ошибках или сбоях.

...