我在后台线程(我使用AsyncTask)下载了一些来自互联网的数据,并在下载时显示进度对话框.方向更改,Activity重新启动,然后我的AsyncTask完成 - 我想关闭progess对话框并启动一个新的Activity.但是调用dismissDialog有时会抛出一个异常(可能是因为Activity被销毁而且还没有启动新的Activity).
处理此类问题的最佳方法是什么(从后台线程更新UI即使用户更改方向也能正常工作)?谷歌有人提供了一些"官方解决方案"吗?
我试图将项目从Eclipse迁移到Android工作室.最后我能够运行它,但在某个时刻我得到了这个例外,我在谷歌中没有发现这个:
04-22 00:08:15.484 9891-9891/hu.illion.kwindoo E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{hu.illion.kwindoo/hu.illion.kwindoo.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
...
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
at hu.illion.kwindoo.activity.MainActivity.onCreate(MainActivity.java:73)
at android.app.Activity.performCreate(Activity.java:5047)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
...
Run Code Online (Sandbox Code Playgroud)
73. MainActivity的行是:
setContentView(R.layout.activity_main);
Run Code Online (Sandbox Code Playgroud)
如果可以,请告诉我.
我想知道用户何时点击webview而不是超链接.在该单击时,我想显示/隐藏包含webview的活动视图.有什么建议吗?
我是PhoneGap的新手.
我的申请必须2页.首先是装好.第一页包含一个按钮,单击时应移至第二页.如何加载第二页?我应该再准备一个扩展DriodGap的活动吗?
我还有一个问题:如何收回按钮事件?
从命令行运行它会导致分段错误:
$ emulator -avd nexus_s
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
但是,如下运行模拟器臂,工作正常.
$ emulator-arm -avd nexus_s
Run Code Online (Sandbox Code Playgroud)
我怀疑它正在尝试运行模拟器的mips或x86版本.有没有办法配置模拟器哪个可执行文件启动?
这一切都是在更新到android sdk 17之后开始的.
添加-verbose标志会给出以下输出(我认为不会添加任何信息):
$ emulator -verbose -avd nexus_s
emulator: found SDK root at /opt/sdk
emulator: Android virtual device file at: /home/grebulon/.android/avd/nexus_s.ini
emulator: virtual device content at /home/grebulon/.android/avd/nexus_s.avd
emulator: virtual device config file: /home/grebulon/.android/avd/nexus_s.avd/config.ini
emulator: using core hw config path: /home/grebulon/.android/avd/nexus_s.avd/hardware-qemu.ini
emulator: Found AVD target API level: 17
emulator: 'magic' skin format detected: 480x800
emulator: autoconfig: -skin 480x800
emulator: autoconfig: -skindir (null)
emulator: keyset loaded …Run Code Online (Sandbox Code Playgroud) 在基于GPS的应用中,重要的是用户启用他的GPS.如果没有,那么通常我们会显示一个对话框,说明用户" 应该从设置启用他的GPS以便能够使用此功能 ".
当用户按下OK时,他将被重定向到Settings页面,我不喜欢这个解决方案,因为它将用户从应用程序上下文中带到了设置中.
我注意到"谷歌地图"应用程序有一个更好的解决方案,即在需要GPS功能时显示一个整洁的对话框.一旦用户选择"OK" GPS将被启用直接没有任何转向的设置.
我可以在不将用户重定向到设置屏幕的情况下启用GPS,就像在"谷歌地图"应用程序中一样吗?
看看下面的图片:

我有以下代码将事件添加到日历.
问题是我不知道如何检索默认日历ID.
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2013, 3, 23, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2013, 3, 24, 8, 45);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startMillis);
values.put(Events.DTEND, endMillis);
values.put(Events.TITLE, "My Test");
values.put(Events.DESCRIPTION, "My Calendar Test");
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "Israel/tel-aviv");
Uri uri = cr.insert(Events.CONTENT_URI, values);
Run Code Online (Sandbox Code Playgroud)
该行:long calID = 3;是日历ID
是否可以从Android获取默认日历ID,或者我是否需要显示日历列表并让用户选择一个?
如果不可能,如何显示日历帐户列表?
我已经在Android应用程序中集成了google signin但是当运行应用程序时,我得到了例外:
android.content.ActivityNotFoundException:无法找到显式活动类{com.example/com.google.android.gms.auth.api.signin.internal.SignInHubActivity};
你有没有在AndroidManifest.xml中声明这个活动?
你能告诉我如何在AndroidManifest.xml文件中声明SignInHubActivity吗?
每当我使用Google One Tap登录 Android 应用程序时,我都会收到一个有效期约为一小时的令牌 ID 。我应该如何获得刷新令牌以避免该令牌过期时每小时登录?我查了官方文档,但没有关于刷新令牌的内容。这是否意味着每次发生这种情况时我们都需要手动登录(并获取新令牌)?
https://developers.google.com/identity/one-tap/android/overview
android google-authentication google-identity google-one-tap
android ×9
android-gps ×1
calendar ×1
cordova ×1
dropbox-api ×1
eclipse ×1
emulation ×1
java ×1
orientation ×1