@vendor ваш код работает, но вы выполняете операции пользовательского интерфейса из фонового потока, что может вызвать исключение. Я пытался настроить ваш код (я разместил его в исходном вопросе), чтобы сделать его безопасным для работы с потоками, но по какой-то причине тост не представлен - вы знаете, почему?

я есть приемник вещания, который прослушивает входящие звонки. И я хочу настроить экран входящего вызова. Прямо сейчас я могу представить тосты и добавить уведомления на панель уведомлений (кстати, пользователь не может опустить его, потому что экран заблокирован, прежде чем принять вызов, что вроде отстой). Я пытался показать оповещение, но оно вылетело - это не разрешено? Есть ли способ для кода в приемнике вещания делать другие вещи, такие как изменение аватара вызывающего абонента или присвоение ему имени (даже если его нет в контактах). Скажем так, мой приемник вещания перехватывает вызов - может ли он добавить номер телефона и пользовательский аватар в контакты, чтобы они сразу же отображались на экране вызова?

Как вы думаете?

редактировать

Я протестировал код вендора, и он работал, но менять интерфейс из фонового потока небезопасно, поэтому я попытался немного настроить его код, чтобы сделать его безопасным, но тост не появляется по какой-то причине. Как вы думаете?

private Handler handler = new Handler();

    private void showToast() { 
        Thread thread = new Thread(null, doBackgroundThreadProcessing, "Background");
        thread.start();
    }

    private Runnable doBackgroundThreadProcessing = new Runnable() { 
        public void run() {
            backgroundThreadProcessing();
        } 
    };

    private void backgroundThreadProcessing() {
        handler.post(new Runnable() {
            public void run() { 
                int count = 0;
                try{
                    while (count < 10) {
                        toast.show();
                        Thread.sleep(1850);
                        count++;

                    }
                }
                catch(Exception e){

                    Log.e("LongToast", "", e);
                }
            } 
        });
    }

Ответы на вопрос(3)

Ваш ответ на вопрос