Можно ли показывать тост поверх системных настроек Android (API 29+)?

Раньше у меня был тост, в котором

Handler().postDelayed(DELAY){
   // show toast 
}

         

чтобы переместить пользователя в какое-то место в настройках Android. Из API 29 этот тост больше не появляется. Если я нажму кнопку «Домой» до того, как ЗАДЕРЖКА закончится, на рабочем столе Android не возникнет проблем.

  1. Произошло ли какое-то необъявленное изменение, что с API 29 больше нельзя показывать тост в настройках Android?

  2. А еще можно там тост как-нибудь показать?

0
0
22
1

Ответы 1

Toast все еще работает для меня, если вы хотите показать тост внутри потока, используйте это:

 new Handler(Looper.getMainLooper()).post(new Runnable() {
    @Override
     public void run() {
         Toast.makeText(getApplicationContext(), "Hi !", Toast.LENGTH_SHORT).show();
       }
   });

Но если это не сработает для вас, вы можете использовать настраиваемое тост-сообщение везде, где захотите. сначала создайте класс CustomeToast:

   public class CustomToast {

       public void showMessage(Context context, String message){

           LayoutInflater inflater = (LayoutInflater) context.getSystemService( 
           Context.LAYOUT_INFLATER_SERVICE );
           View view =inflater.inflate(R.layout.toast, null);
           View layout = view.findViewById(R.id.toast_layout_root);

           TextView text = (TextView) layout.findViewById(R.id.text);
           text.setText(message);

           Toast toast = new Toast(context);
           toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
           toast.setDuration(Toast.LENGTH_LONG);
           toast.setView(layout);
           toast.show();
    }
}

Затем используйте везде, где хотите:

 CustomToast customToast= new CustomToast();       
 customToast.showMessage(getApplicationContext(),"Hi !");

Работает над настройками андроида?

Smeagol 07.04.2021 13:28

Да, работает ...

Pooya Chavoshi 07.04.2021 17:33

Другие вопросы по теме