Я занимаюсь разработкой приложения, которое включает отображение уведомления о тостах для различной информации.При тестировании на этом телефоне: Nokia 6.1 (Android 8) , я понял, что тосты не отображаются.
Я использую тост-уведомления обычным способом, как указано в официальном руководстве Android-разработчика.
Я дважды проверил, что у моего приложения есть разрешение на уведомление.
Затем, чтобы проверить наличие каких-либо отклонений в работе телефона, я решил посмотреть, как в этом мобильном телефоне реализовано уведомление для «Сообщение отправлено» в Gmail.Обычно это выглядит как тосты, но на этом телефоне это выглядело как закусочная.
Полагаю, это пользовательская реализация Android.Предполагая, что это пользовательская реализация, как приспособиться к таким отклонениям в моем приложении?Стоит ли переходить на закусочную или есть какие-то другие альтернативы для решения этой проблемы?
Лично мне нравится, когда тост отображает информацию, и переключение на снэк-бар приведет к значительным потенциальным изменениям в приложении.Что я могу сделать, чтобы минимизировать влияние при поддержке большинства телефонов Android?
Я использую следующий метод для отображения тоста:
public static void showLongToast(Context context, String message) {
Toast t = Toast.makeText(context, message, Toast.LENGTH_LONG);
t.show();
}
Я отладил t.show ()и указатель вошел в этот код в Toast.java.
public void show() {
if (mNextView == null) {
throw new RuntimeException("setView must have been called");
}
INotificationManager service = getService();
String pkg = mContext.getOpPackageName();
TN tn = mTN;
tn.mNextView = mNextView;
try {
service.enqueueToast(pkg, tn, mDuration);
} catch (RemoteException e) {
// Empty
}
}
Указатель вошел в throw new RuntimeException("setView must have been called");
.Кроме того, блок try не был выполнен.