问题标签 [android-activity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1797 浏览

android - Android:唤醒锁和处理方向变化

我在我的应用程序中使用 Wakelock 来防止手机在应用程序可见时进入睡眠状态。

当方向发生变化并且系统在横向模式下销毁并重新创建应用程序时,就会出现问题。如果wakelock 计时器在后台已过期,系统会将wakelock 的释放作为关闭屏幕的机会。

编辑:我应该提到我正在设置唤醒锁 onResume,并释放 onPause - 据我了解,有必要释放然后以防止应用程序泄漏唤醒锁。

我需要唤醒锁来继续改变方向。

下面我概述了一个解决方案。这是处理它的首选方法吗,还有其他选择吗?


创建一个持有唤醒锁(而不是活动)的服务,当活动解除绑定时,服务会启动一个倒计时计时器(例如 10 秒),如果活动没有重新绑定,它将在计时器到期时释放唤醒锁。如果是简单的方向更改,则 Activity 将在那 10 秒内重新绑定并保持唤醒锁,如果没有,唤醒锁将被释放。

谢谢。

0 投票
1 回答
159 浏览

android - 列表活动问题

我已经实现了分页,它每页显示 5 条记录。现在假设我在第 3 页并单击第 3 个元素,然后选择第 1 页的第 3 个元素。

我无法找出问题,因为我总是在设置数据时创建新的列表对象。

我用下面的代码

下面是 SomeListAdapter 类的签名。

请帮忙....

0 投票
2 回答
1158 浏览

android - 从 WebView 错误到 ImageView 掩盖再到屏幕方向

这一切都始于Android 应用程序中的一个简单的WebView 。

此视图从公共 URL 加载信息。那里没有什么不寻常的。

但是......如果出现网络中断,您很容易在WebView中突出显示错误。

好吧,那不好,对吧?所以我在文档和其他地方搜索了一种方法来抑制它,或者捕获它......但没有发现任何线索。有了这个,我#android-dev在 IRC 上询问:我知道WebView.onReceivedError,但是可以抑制视觉部分吗?(相反,我想显示一个关于所述网络问题的对话框警告,并选择重试。)

答:你不能。:(

很好。计划 B 的时间到了。也许ImageView 可以满足要求?

如果出现任何类型的WebView错误,ImageView可以用作临时窗帘。它在开始时(在加载 URL 之前)覆盖WebView,然后淡出以显示其后面的WebView 。如果WebView有效,那就太好了!但是如果onReceivedError启动,我们会立即拉上帷幕并显示上述对话框。一旦 WebView 获得onPageFinished,幕布就会再次消失。

...而这...效果非常好!

直到我被要求支持屏幕方向更改。(伏笔:“事情从这里走下坡路。”)

到目前为止,该应用程序一直android:screenOrientation="portrait"在 Manifest 的主要活动中使用。所以我删除了那部分,当然我们遇到了臭名昭著的“正在重新启动活动”问题,它吹走了然后又带回了WebView

当然,这本身不是问题。这是按设计运行的 Android 操作系统。

此外,我们希望ImageView根据方向正确显示。值得庆幸的是,我们有可以利用的替代资源!同时,我们仍然有这个我们不想重新加载的WebView 。我们希望它保持独立,让视图做自己的事情,无论是当时的纵向还是横向。

我找到了一些处理屏幕方向的很好解释的方法,而且我已经阅读了作者Mark Murphy 的 电子书(强烈推荐阅读)。然而我还是被卡住了!现在有了ImageView,似乎没有一种技术可以满足要求:

  1. 当然,强制肖像模式是不可能的(或者是吗?)。

  2. android:configChanges="keyboardHidden|orientation" 并且onConfigurationChanged似乎处理了 WebView,它可以自行优雅地处理屏幕大小调整。当然,ImageView也没有得到备忘录,它继续使用其原始(纵向/横向)资源!

    对配置更改处理程序中的一个考虑不周的调用 activity.setRequestedOrientation(newConfig.orientation) 没有帮助。

  3. 由于WebView不需要在应用程序执行之间持久化,因此 onRetainNonConfigurationInstance 看起来像是另一种可能性。唉,这似乎也不起作用。使用最后一个非配置实例进行重置webview(因为这是我真正传入的全部内容)导致空白WebView。不完全是我所追求的。

    另一方面,ImageView似乎对方向变化做出了很好的响应。去搞清楚。

  4. 怎么样onSaveInstanceState?同样的陷阱。WebView有一个saveState 方法,但它似乎没有将它保存在足够深的级别以保持过渡无缝。如果是这样,那么它可能也不应该这样做,所以这也可能是错误的方法。

至于使用的智慧configChanges文档非常推荐这种技术,实际上:

当设备方向改变时,Activity的标准行为将被销毁并重新创建。这将导致WebView重新加载当前页面。如果你不想这样,你可以设置你的Activity来处理orientationkeyboardHidden 更改,然后只留下 WebView。它会根据需要自动重新定向。

当然,我也可能在这里犯了某种飞行员错误,但我还没有弄清楚那可能是什么。

我已经阅读并重新阅读了文档,并尝试了各种方法来自行破解。也许我在文档中遗漏了一些东西(很明显?),或者解决方案不明显(但有人可以阐明)......或者这根本不可能。希望不是后者。

欢迎/赞赏线索!

0 投票
2 回答
10988 浏览

android - 如何在多个活动之间保持与 Android 服务的连接?

我有多项活动和一项服务。在MainActivity我成功连接到服务时(使用实现ServiceConnection++的类bindService()) ,startService()但是当我尝试在其他活动中应用相同的方法时,我在 LogCat 中看到一个错误:

是否有可能以其他方式连接到服务:例如将我的CounterServiceConnection对象设为静态MainActivity并在第二种方式中使用它?

0 投票
3 回答
6168 浏览

android - 从 Preference Activity 启动 Activity 导致 Permission Denial 异常

我这里有点问题。我想要做的是从 PreferenceActivity 中启动一个 Activity。所以我的preference.xml 包含首选项布局如下所示:

清单知道我要启动的活动..

你猜怎么着,当我想启动它时,我得到了一个安全异常( Permission Denial )。我错过了什么吗?我对意图的理解仍然有点不完整,但我认为它必须以这种方式工作。

感谢您的任何帮助!

0 投票
4 回答
23858 浏览

android - 如何在Android中打开新屏幕?

我是 android 新手,我在验证登录后创建了一个登录页面

我在用户身份验证的基础上得到结果是真还是假现在我的目标是使用一些新的文本框和按钮显示另一个成功身份验证的屏幕我的意思是新布局如何实现这一点???

任何帮助都会得到帮助。

0 投票
2 回答
21518 浏览

android - 如何判断 Android 活动何时完成加载?

我正在为我们的 android 应用程序开发一个自动化测试套件,并且在等待活动完全加载时遇到了麻烦。我可以调用 getActivity,但仅仅因为它显示了我希望在我的测试中看到的活动,并不总是意味着活动的组件已准备好使用(完全加载)。查看 Activity API 并没有发现任何问题,并且其他方法似乎过于侵入性并且破坏了测试的初始状态。有谁知道是否有办法询问应用程序或虚拟机是否加载了当前活动?

0 投票
53 回答
1132459 浏览

android - 如何在 Android 应用程序的活动之间传递数据?

我有一个场景,通过登录页面登录后button,每个activity.

单击sign-out时,我将传递已session id登录用户的注销。谁能指导我如何保持session id对所有人可用activities

这种情况的任何替代方案

0 投票
1 回答
153 浏览

android - 如何从 AndroidManifest.xml 中参数化 Activity

我有一个CustomListActivity我希望公开相同数据的两个方面的内容。

例如:我有一个汽车列表,想列出一组颜色和一组模型。这些将在我的 mimetype 上过滤ContentProvider

org.acme.cars.cursor.dir/colors org.acme.cars.cursor.dir/models

CustomListActivity的参与度很高,但足够通用,可以重复使用,但是:

  • 用户应该能够从菜单/按钮栏在两个列表之间切换
  • 该列表是 MAIN LAUNCHER 意图。
  • 应记住用户对方面(型号或颜色)的选择
  • 我们应该能够通过 mimetype 调用这些活动。

所以,我的问题是:

我可以在 AndroidManifest.xml 中声明两个活动,每个活动都具有相同的类,对其进行参数化,还是我需要在类中使用一些开关?

0 投票
3 回答
298 浏览

android - 如果应用程序正在运行,如何强制执行活动?

我从我的 Widget 启动一个 Activity,它应该启动一个特殊视图。
但是如果应用程序已经在运行(没有留下后退按钮),Android 会激活上次显示的活动。
是否有任何标志或其他方式来避免这种行为?
关闭以前的活动在我的应用程序中不会有问题,不会丢失任何用户输入。
我在 onStop() 中尝试了使用 finish() 的解决方法,但是当调用子活动 (startActivityForResult) 时也会调用 onStop,因此从那里返回什么都没有 - 应用程序将被关闭。