标签: android-activity

123
推荐指数
6
解决办法
24万
查看次数

Android中的活动中的软键盘打开和关闭监听器

我有一个Activity有5 EditText秒的地方.当用户点击第一个时EditText,软键盘会打开以在其中输入一些值.我想设置一些其他ViewGone对软键盘打开时的可见性,以及用户点击第一个时的可见性,以及当按下后面按钮EditText时软键盘关闭时EditText.然后我想将其他View人的可见性设置为可见.

EditText在Android中第一次点击软键盘时,是否有任何监听器或回调或任何黑客攻击?

android android-softkeyboard android-edittext android-activity

123
推荐指数
11
解决办法
14万
查看次数

Android:清除活动堆栈

我在我的应用程序中有几个活动.并且流程非常复杂.当我单击Logout应用程序naviagates登录屏幕时,用户可以通过取消按钮退出(调用system.exit(0))

当我退出或退回按钮时,系统从堆栈调用一个活动:(当我到达登录界面时,如何清除堆栈中的所有活动?调用finish()是不切实际的,因为有很多活动,一些活动不应该关闭是活动的,如本机相机调用活动.

validateuser logoutuser = new validateuser();
logoutuser.logOut();
Intent loginscreen = new Intent(homepage.this, Login2.class);
(homepage.this).finish();
loginscreen.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(loginscreen);
Run Code Online (Sandbox Code Playgroud)

stack android android-activity

122
推荐指数
4
解决办法
9万
查看次数

意图 - 如果活动正在运行,请将其置于最前面,否则启动一个新的(来自通知)

我的应用程序有通知,这是 - 很明显 - 没有任何标志,每次启动一个新的活动,所以我得到对方的顶部,这是错误的运行多个同样的活动.

我想要它做的是将通知挂起意图中指定的活动带到前面(如果它已在运行),否则启动它.

到目前为止,我所拥有的通知的意图/待定意图是

private static PendingIntent prepareIntent(Context context) {
    Intent intent = new Intent(context, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

    return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它有时会起作用,有时它不会......我觉得我已经尝试了每一个标志组合.

android android-intent android-activity android-pendingintent

122
推荐指数
5
解决办法
7万
查看次数

最简单的方法在Android中使用svg?

我找到了无数的库,以便在Android中使用svg并避免令人沮丧的创建不同的分辨率并删除每个分辨率的文件,当应用程序有许多图标或图像时,这变得非常烦人.

任何人都可以在Android中使用最简单的库来使用SVG的一步一步的过程,我相信这也会帮助很多其他人.

我还使用Android Studio和Illustrator生成我的图标和图像.

android android-activity androidsvg

122
推荐指数
6
解决办法
11万
查看次数

如何在android中为每个不同的屏幕大小定义dimens.xml?

Android中支持不同的屏幕尺寸(密度)时,通常关注的是为每个可能的屏幕创建不同的布局.IE

  • LDPI
  • MDPI
  • 华电国际
  • xhdpi
  • xxhdpi
  • xxxhdpi

我为xhdpi屏幕设计了一个布局作为参考,并在dimens.xml中定义了它的尺寸.现在我想支持每个可能的屏幕尺寸.我怎样才能做到这一点?

据我所知,我可以使用工具找出适合其他屏幕尺寸的dimens.xml并将其添加到我的项目中.这是在我的情况下这样做的正确方法吗?

另一个问题,我是否只需要为上面的屏幕尺寸创建dimens.xml?如果是,那么是什么w820dp

谢谢你的帮助.我只需要支持手机(不是平板电脑或其他设备).

android android-layout android-screen-support android-activity

118
推荐指数
7
解决办法
14万
查看次数

116
推荐指数
6
解决办法
8万
查看次数

Android破坏活动,查杀进程

嗨,我想知道Android如何管理内存,我无法在任何地方找到准确的答案.假设我有一个应用程序在当前活动堆栈上有5个活动(4个被停止,1个被恢复),没有连接服务.我按下HOME按钮,以便停止所有活动.我启动了一些其他内存消耗应用程序,整体设备内存开始变低.问题是

......我的申请会怎样?

  1. 系统可以只销毁我的一个或一些活动来恢复内存吗?
  2. 系统会杀死我申请的整个过程吗?所有的活动都会被很好地摧毁吗?
  3. 当我完全杀死我的应用程序时会发生什么?它会从开始(如第一次开始)开始,还是会尝试将活动恢复到正常状态/如果是 - 它只是堆栈顶部的那个还是全部?

更新:

在提出这个问题之前,我已经看过几次Activity生命周期,但它没有我的问题的答案.我做了一些测试,我有一些答案.DDMS中的"停止过程"是测试的线索.

我没有测试问题1的答案,但正如指南所说:

如果某个活动暂停或停止,系统可以通过要求完成活动或仅删除其进程来从内存中删除活动.

似乎可以轻轻地销毁一个或多个活动(使用onDestroy方法)而不会终止进程.回到它们时,您将获得(onCreate + bundle).

问题2答案:

是.通常系统杀死整个过程,这意味着包括活动和静态字段在内的所有数据都被销毁.这样做不是很好 - 你不会为任何暂停/停止的活动获得onDestroy或finialize().这就是在onPause方法之前调用saveInstanceState()的原因.onPause基本上是你应该保存的最后一个方法,因为在这个方法之后你永远不会看到onStop或onDestroy.系统可以扼杀破坏所有物体的过程,无论它们持有什么以及它们正在做什么.

问题3答案:

当你回到被杀的应用程序时会发生什么?

  • 在Android 2.2之前 - 应用程序将从具有启动器活动的开始启动.
  • 从2.2开始 - 系统将恢复先前的应用程序状态.这是什么意思?这意味着将重新创建最后一个可见活动(onCreate + bundle).活动堆栈会发生什么?堆栈很好但是它上面的所有活动都已经死了.当您使用后退按钮返回时,每个都将被重新创建(onCreate + bundle).还有一件事:

通常,当用户从主屏幕重新选择该任务时,系统会在某些情况下清除任务(从根活动上方的堆栈中删除所有活动).通常,如果用户未访问任务一段时间(例如30分钟),则完成此操作.

结论?

  1. 不要认为处理活动轮换问题可以通过android解决:configChanges ="orientation".当你这样做时,你会得到许多你甚至都不知道的问题.
  2. 使用DDMS测试应用程序 - 停止进程按钮.看到这个
  3. 使用静态变量时要小心.不要认为当你在活动1中初始化它们时 - 你将在活动2中初始化它们.初始化全局静态的唯一安全的地方是Application类.
  4. 请记住,您可能永远不会看到onStop或onDestroy.关闭文件/数据库,在onPause中停止下载.当您希望应用程序在BG中执行某些操作时 - 请使用前台服务.

那将是它...希望我帮助我的essey :)

android android-activity

116
推荐指数
1
解决办法
5万
查看次数

如何通过bundle发送对象

我需要传递对通过bundle进行大部分处理的类的引用.

问题是它与意图或上下文无关,并且具有大量非原始对象.如何将类打包成parcelable/serializable并将其传递给startActivityForResult

serialization android bundle parcelable android-activity

115
推荐指数
7
解决办法
16万
查看次数

Android Fragment生命周期超过方向更改

使用兼容包以使用Fragments定位2.2.

重新编码活动以在应用程序中使用片段后,我无法获得方向更改/状态管理工作,因此我创建了一个带有单个FragmentActivity和单个片段的小型测试应用程序.

方向更改的日志很奇怪,多次调用片段OnCreateView.

我显然缺少一些东西 - 比如分离片段并重新连接它而不是创建一个新实例,但是我看不到任何可以指示我出错的文档.

请问有人能说清楚我在做错了吗.谢谢

方向更改后的日志如下.

Initial creation
12-04 11:57:15.808: D/FragmentTest.FragmentTestActivity(3143): onCreate
12-04 11:57:15.945: D/FragmentTest.FragmentOne(3143): OnCreateView
12-04 11:57:16.081: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState null


Orientation Change 1
12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): onSaveInstanceState
12-04 11:57:39.031: D/FragmentTest.FragmentTestActivity(3143): onCreate
12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): OnCreateView
12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState not null
12-04 11:57:39.031: D/FragmentTest.FragmentOne(3143): OnCreateView
12-04 11:57:39.167: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState null


Orientation Change 2
12-04 11:58:32.162: D/FragmentTest.FragmentOne(3143): onSaveInstanceState
12-04 11:58:32.162: D/FragmentTest.FragmentOne(3143): onSaveInstanceState
12-04 11:58:32.361: D/FragmentTest.FragmentTestActivity(3143): onCreate
12-04 11:58:32.361: D/FragmentTest.FragmentOne(3143): OnCreateView
12-04 11:58:32.361: D/FragmentTest.FragmentOne(3143): OnCreateView->SavedInstanceState not null
12-04 11:58:32.361: …
Run Code Online (Sandbox Code Playgroud)

android orientation android-fragments android-activity

115
推荐指数
3
解决办法
9万
查看次数