Articles of android activity

活动生命周期

我试图了解一个活动完整的生命周期。 所以我在Google上search了很多关于活动生命周期的教程,但在所有的教程中,我还没有在生命周期图中find这些方法: 1. OnContentChanged() 2. OnPostCreate() 3. OnPostResume() 4. OnWindowfocusChanged() 5. OnuserLeaveHint() 6. OnUserInteraction() 7. OnDetachedFromWindow() 我想知道为什么这些方法不包括在android文档的活动生命周期图表中。 还有一个问题: 当第一次创build活动时,系统调用OnContentChanged()方法作为第一个方法,最后一个由system调用的方法是OnDetachedFromWindow()方法,当一个活动被杀死时,但android docs说整个生命周期发生在OnCreate()和OnDestroy() ?

Android深度链接 – 后退堆栈

我正试图在我的Android应用程序中实现深层链接。 我一直在遵循这个指南 。 我有一个从Android清单中启动并意图过滤的Android活动: <activity android:name=".MyActivity" android:parentActivityName=".MainActivity" > <intent-filter android:label="@string/filter_title_deep_link"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="com.example" /> </intent-filter> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/> </activity> 我从adb产生这个意图: adb shell am start -W -a android.intent.action.VIEW -d "com.example://test" com.example 正在使用正确的意图数据创build活动并按预期运行。 但是,按下后退button,应用程序退出。 我期待的是使用MainActivity构buildback栈,正如Android清单中的parentActivityName所指定的parentActivityName 。 显然情况并非如此。 在这种情况下,如何将父级活动添加到后退堆栈? 我想知道是否可以使用如通知的上下文中所示的TaskStackBuilder ,但不知道如何工作。 也许我应该有一个中间的活动来构build主要的活动,使用像这样的东西: TaskStackBuilder.create(this) .addParentStack(MyActivity.class) .addNextIntent(new Intent(this, MyActivity.class)) .startActivities(); ?

由java.lang.NullPointerException引发:尝试调用空对象引用的虚拟方法'int android.graphics.Bitmap.getWidth()'

我有BitmapScalingHelper.java: public class BitmapScalingHelper { public static Bitmap decodeResource(Resources res, int resId, int dstWidth, int dstHeight) { Options options = new Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(res, resId, options); options.inJustDecodeBounds = false; options.inSampleSize = calculateSampleSize(options.outWidth, options.outHeight, dstWidth, dstHeight); Bitmap unscaledBitmap = BitmapFactory.decodeResource(res, resId, options); return unscaledBitmap; } public static Bitmap decodeFile(String filePath, int dstWidth, int dstHeight) […]

Android中活动方向变化的怪异行为

在处理活动的方向上,我面临很奇怪的问题。 让我解释一下这个场景 我有活动A和B.目前A处于横向模式,B(固定)处于纵向模式。 我保存的活动状态A如果用户改变方向A.我从A(横向)到B(纵向),所以在这种情况下,A是在后台,所以它应该调用onSaveInstance(捆绑)的方法。 但它调用,当我回来然后A的Resume()调用,我得到exceptiononResume()不能调用后的onSaveInstance()为A. 这是事情,让我烦恼。 更新编辑 如果两项活动都可以有任何方向。 然后活动一个onSaveInstance(包)不会调用, 而去 B和它运作良好

单一的XML,多个活动和那里的performance

我有一些Android用户的简单问题 。 如果我使用Single XML进行Multiple Activity ,可能会出现什么问题? 如果我们使用这种方法, 它将如何帮助应用程序性能 ? 例如:如果具有相同的XML layouts A,B,C for A,B,C Activity ,而不是使用多个布局,我只想使用单个布局,即A,B,C Activity XML Layout 。 注意:我已经试过了,工作正常。 但是我想知道使用这种方法的任何问题或问题。 走了一些网站,但没有得到清除照片 build议或帮助将不胜感激。 非常感谢 ..!!

在Android中实现Model-View-Presenter的困难

模型 – 视图 – 演示者(MVP)是GUI应用程序中众所周知的devise模式。 对于Android来说,在普通的Java模块中实现业务逻辑可以在不需要Android模拟器的情况下进行testing。 但是,由于对Android应用程序的graphics用户界面的特殊要求,我在Android上实现模式时遇到困难: 一个活动可能会在任何时候被破坏(来电,用户按回家button,…),当重新创build时,它应该处于与离开时完全相同的状态。 这与大多数其他GUI应用程序不同。 一个活动可以经历许多生命周期状态。 在这种情况下,可能会暂停该活动的UI,不应修改。 例如,如果某些数据正在后台加载,如果它处于暂停状态,则无法将其传递到MVP(活动)的View部分。 同样,这是一个不寻常的要求。 我已经阅读了Android的博客postMVP,并查看了示例源代码 。 我试图通过使用MVP模式实现的最终目标是能够使用转译器j2objc将所有业务逻辑转换为Objective-C,以便在iOS上实现相同的应用程序时可以重用业务逻辑。 有没有人成功地实现了Android的MVP模式,在这种情况下,我错过了什么?

startActivity上的rjava.lang.IllegalArgumentException(intent,bundle animantion)

嗨,我使用下面的代码,但有时应用程序崩溃的错误: startActivity中的java.lang.IllegalArgumentException(slideactivity,bndlanimation); if (android.os.Build.VERSION.SDK_INT >= 16) { Bundle bndlanimation = ActivityOptions.makeCustomAnimation(getApplicationContext(), R.anim.slide_in, R.anim.slide_out).toBundle(); startActivity(slideactivity, bndlanimation); } else startActivity(slideactivity); finish(); 这是崩溃日志 java.lang.IllegalArgumentException 1在android.os.Parcel.readException(Parcel.java:1553)2在android.os.Parcel.readException(Parcel.java:1499)3在android.app.ActivityManagerProxy.isTopOfTask(ActivityManager本机.java:4465)4 at android.app.Activity.isTopOfTask(Activity.java:5361)5 at android.app.Activity.startActivityForResult(Activity.java:37 70)6 at android.app.Activity.startActivity(Activity .java:4003)7 at com.tapcibo.tapcibo.uifragment.LaunchActivity.a(SourceFile:105)

如何通过活动之间的大量收集(主 – 细节stream程)

背景: 我正在实现一个从Web服务中读取电影信息的应用程序。 该networking服务返回有关每部电影(标题,date,海报url,导演,演员等)的几个信息。 该Web服务支持分页,所以电影被装入100包。 执行: 这个想法是显示所有的海报网格。 当用户向下滚动时,自动请求更多的项目。 当一个项目被点击时,用户导航到具有所选电影的详细视图的图库,允许使用ViewPager滚动查看详细信息。 所以想法是将网格中检索到的电影集合传递给“DetailedGalleryActivity”。 更新:当用户离开片段以处理片段生命周期时,还需要保存状态。 您可以testing它启用开发人员选项: 不要保持活动 问题 我的第一个方法是在json中序列化电影的集合,并将其作为额外的string传递给Activity。 但是由于电影列表很大,如果用户在网格中滚动很多,那么对于Bundle来说,json的大小是非常大的(请参阅string数据的最大大小 ),从而获得运行时exception。 我已经检查了一些关于在启动详细活动之前将数据保存在SharedPreferences或其他持久性存储中的答案,然后从详细信息中访问它。 我发现这个解决scheme很奇怪,因为它忽略了使用自定义和手工解决scheme在活动之间传递数据的机制。 什么是解决这个问题的最好方法?

为什么onAttach(活动活动)不推荐?

在将SDK更新到API级别23后,我发现onAttach (Activity activity)已被弃用,并且新方法在onAttach (Context context) 。 任何人都可以启发我为什么做这个改变吗?

Android应用程序与多个活动

我有一个非常简单的游戏,只有一个活动,我想添加一个标题屏幕。 如果标题屏幕是另一个活动,则需要对我的清单文件做出哪些更改才能使标题屏幕首先打开? 游戏活动被称为Leeder,标题屏幕活动被称为LeederTitleScreen 这是我目前的清单文件。 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.nifong.leeder" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name="Leeder" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="5" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> </manifest>