可显示的 Toast 数量是否有限制?

Is there a limit to the amount of displayable Toasts?

在 MainActivity 中,我需要显示 getApplicationContext().fileList() 返回的所有文件,但只会显示大约前 50 个 Toast。

有限制吗?

String[] fileList = getApplicationContext().fileList();

Toast.makeText(getApplicationContext(), fileList.length + " files", Toast.LENGTH_LONG).show();

for (String fileName : fileList)
{
    Toast.makeText(getApplicationContext(), fileName, Toast.LENGTH_LONG).show();
}

谢谢

我认为有可能您的所有 Toast 都在显示,但是 因为您的 toat 中有 LENGTH_LONG 其中一些在上一个 Toast 之前显示已完成,它们相互重叠,所以您似乎没有看到它们。

正如@CommonsWare在他的评论中所说,这是为了让你的调试更好地使用Log

是的,Toasts 已排队并且有 50 个 Toasts 的限制,您可以在 NotificationManagerService class

中查看检查
if (count >= MAX_PACKAGE_NOTIFICATIONS) {
    Slog.e(TAG, "Package has already posted " +
           + " toasts. Not showing more. Package=" + pkg);
    return;
}

并且MAX_PACKAGE_NOTIFICATIONS声明为

static final int MAX_PACKAGE_NOTIFICATIONS = 50;