可显示的 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;
在 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;