gpt4 book ai didi

android - 闪烁的电子邮件选择器

转载 作者:行者123 更新时间:2023-11-30 04:45:47 25 4
gpt4 key购买 nike

我有一些主要 Activity ,点击一个按钮会启动一个自定义对话窗口。在对话框中,我有按钮“发送电子邮件”,当用户单击该按钮时,它会调用电子邮件选择器(通过简单的方法调用)。

sendEmail();

这里是 sendEmail() 方法

public void sendEmail() {
String email = "some.email@gmail.com";

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{email});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Message");
mContext.startActivity(Intent.createChooser(emailIntent, "Choose an email"));
}

但在我的 HTC Desire (2.2) 上,对话框有时会开始闪烁。只是我无法点击任何东西,我必须退出一个应用程序,或者我只是横向旋转它然后向后旋转,然后闪烁/闪烁停止。

问题出在哪里?为什么会闪烁?

更新:我尝试记录对 sendEmail 函数或 CreateDialog 构造函数的“多次调用”,但没有,所有内容都只调用一次,之后我的日志中就有了这个......我可以解决它做另一个像对话一样的 Activity ,但我想知道这里的问题在哪里:/

日志

02-15 19:06:45.605 D/SurfaceFlinger(   92): Layer::setBuffers(this=0x9a9478), pid=12757, w=1, h=1
02-15 19:06:45.605 D/SurfaceFlinger( 92): Layer::setBuffers(this=0x9a9478), pid=12757, w=1, h=1
02-15 19:06:45.675 D/SurfaceFlinger( 92): Layer::requestBuffer(this=0x92b350), index=1, pid=12757, w=443, h=337 success
02-15 19:06:45.715 D/SurfaceFlinger( 92): Layer::requestBuffer(this=0x9a9478), index=0, pid=12757, w=480, h=762 success
02-15 19:06:45.755 I/UsageStats( 92): Unexpected resume of android while already resumed in android
02-15 19:06:45.815 D/SurfaceFlinger( 92): Layer::setBuffers(this=0x9a9478), pid=12757, w=1, h=1
02-15 19:06:45.815 D/SurfaceFlinger( 92): Layer::setBuffers(this=0x9a9478), pid=12757, w=1, h=1
02-15 19:06:45.895 D/SurfaceFlinger( 92): Layer::requestBuffer(this=0x9a9478), index=0, pid=12757, w=480, h=762 success

最佳答案

我一直在处理同样的问题(切换方向后选择器闪烁)。最终证明是因为我在我的应用程序中使用了自定义语言环境(如 here 所述)。

我通过在我的 Activity 和小部件的每个 onCreate 上执行此操作来替换它(在调用 super.onCreate() 之前):

    Configuration config = getBaseContext().getResources().getConfiguration();

String lang = "en"; //replace by your own method of getting user language

locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

当然,您可以将其打包到一个方法中,这样您只需调用它即可。

这样,选择器将停止闪烁。

关于android - 闪烁的电子邮件选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4995006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com