问题标签 [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.
java - 按下主页按钮时在android中保存活动状态
我遇到了与 home 键相关的问题。当我按下主页键时,当前活动被隐藏,但是当我再次启动可执行文件时,它从第一个屏幕开始。我已经覆盖了所有方法(onSaveInstanceState、onPause、onStop onResume),但仍然存在问题。处理这个问题的正确方法是什么?
当我按下主页按钮时,我将小部件状态存储在数据库中,当我再次启动可执行文件时,我正在检查数据库状态并启动用户按下主页按钮时保存的新 Intent。这是正确的方法吗,因为当用户执行相同操作并再次按下后退按钮时我面临问题,活动堆栈中已经有可用的意图。
android - 如何在 Activity 重新启动时保留复杂对象?
假设我有一个可序列化的 Java Bean 对象。当 Activity 故意通过 onDestroy()时(即未调用 onSaveInstanceState()),我想将其安全地存储起来。
我正在寻找一种不涉及创建数据库并将对象写入该数据库的方法(主要是因为 a)Android 的 DB API 很糟糕,b)因为数据库使应用程序更新成为一场噩梦,因为没有像样的支持应用迁移)。
我考虑将对象序列化为 ByteArrayOutputStream,base64 对其进行编码并将其作为字符串写入 SharedPreferences 文件。还是离得太远了?
更新
也许这个序列化到字符串的想法毕竟不是那么糟糕,似乎效果很好。这就是我现在正在做的事情:
在 onDestroy() 中,我可以简单地将 Base64 字符串写入首选项文件,在下一次活动启动期间再次读取之前,它是安全的。它比我预期的要快得多,除非你的 bean 携带大量数据,否则它工作得很好。更好的是,您不必维护数据库模式。
不过,我很好奇其他人是如何做到这一点的。
java - Android“单顶”启动模式和onNewIntent方法
我在 Android 文档中读到,通过将我的 Activity 的 launchMode 属性设置为 singleTop 或通过将FLAG_ACTIVITY_SINGLE_TOP
标志添加到我的 Intent,该调用startActivity(intent)
将重用单个 Activity 实例并在onNewIntent
回调中给我 Intent。我做了这两件事,onNewIntent
从来没有onCreate
每次都开火。文档还说,它this.getIntent()
返回第一次创建时第一次传递给 Activity 的意图。在onCreate
我打电话getIntent
时,我每次都会得到一个新的(我在另一个活动中创建意图对象并添加一个额外的对象......如果它返回相同的内容,那么这个额外的对象每次都应该是相同的意图对象)。所有这一切让我相信我的活动不像“单顶”,我不
为了添加一些背景信息,以防我只是错过了一个必需的步骤,这是我在清单中的 Activity 声明和我用来启动 Activity 的代码。Activity 本身在这方面没有做任何值得一提的事情:
在 AndroidManifest.xml 中:
在我的通话活动中:
android - 活动组抛出ActivityNotFoundException?
我想在选项卡活动中更改选项卡内的当前活动,
经过一番研究,我知道我需要使用活动组去这个。
ActivityGroup
然后我使用以下代码创建了一个新类扩展:
然后我运行程序,程序在ActivityNotFoundException
启动选项卡的意图时抛出
我不知道如何解决这个问题,有人可以帮助我吗?
android - 覆盖 Android 中的 Activity/Task 行为
我正在编写一个简单的 Android 应用程序,我希望更好地控制活动之间的导航/关系。我不希望我的活动表现得像 android 活动......我不希望它们在任务中堆积。我希望一个Activity
(我们称之为MainActivity)作为着陆点并始终位于堆栈的底部,并且我希望我的第二个活动的一个实例(称之为SecondActivity)在堆栈中位于它的上方......会也很高兴重用它。我想我可以通过使MainActivity成为“主要”来获得这种行为Activity
,并将它们都声明为launchMode=singleTop
. 这根本行不通。我使用菜单在它们之间提供导航,所以当我来回多次并退出应用程序时,我会浏览整个堆栈。
Activity
对任务堆栈进行精细控制的最佳方法是什么?我希望MainActivity始终退出应用程序,而SecondActivity始终返回到 MainActivity 的单个实例。同样,我很想让 singleTop 工作,所以我会使用onNewIntent
而不是每次都创建和销毁。使用清单以及意图标志是行不通的。有任何想法吗?
android - Android - 在活动之间导航时清除历史记录
我有 3 个活动,我的用户不断循环。当用户返回主屏幕时,我需要终止以前的历史记录,这样用户就不能点击返回按钮并最终出现在屏幕 #2 上,有什么好的方法来做这样的事情?顺便说一句 - 我使用的是 1.6(API 级别 4)
重申一下 - 说我不知道或预测导致我到达原始视图的路径。但是一旦我加载它,我想清除导致用户进入该视图的历史记录。在 2.0 中可以覆盖 Activity#onBackPressed 但我在 1.6 中需要类似的东西
android - 如何启动预先填写“收件人”字段的电子邮件应用程序?
我尝试了在这里找到的代码:
但我在屏幕上收到一条消息,上面写着“不支持的操作”。关于如何使它工作的任何想法?
谢谢!
android - 在 Android 上通话结束时启动活动
我想在电话结束时启动一项活动。找不到任何参考。我该怎么做?
android - 是否可以从 AlertDialog 启动 Android Activity?
我正在尝试在我的 Android 应用程序中创建一个小弹出窗口,让用户从许多项目中进行选择,例如 ListView。我希望让它显示为一个覆盖在屏幕上的半透明框,而不是像活动通常那样完全占据它。
我听说的一种方法是在 AlertDialog 框中启动一个活动。这将是完美的 - 它是理想的尺寸并且具有我正在寻找的许多机械性能,但我完全无法找到该技术的更多细节。
这可能吗?如果不是,那么完成这样的事情的首选方法是什么?
android - Android - 来自服务的活动?
我正在扩展 IntentService 类以在 Android 上运行后台服务。该服务在启动后立即启动。我想定期从该服务中弹出一个用户输入框。所以,我尝试从服务中调用一个 Activity,但它没有帮助。可怕的强制关闭框出现,服务终止。有人可以建议一些从后台服务调用活动的方法吗?
谢谢!