Articles of android activity

在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>

Android:在活动屏幕方向更新期间保持MediaPlayer运行

我使用MediaPlayer播放MP3。 目前我通过使用禁用屏幕方向更改 android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" 在清单中。 我现在想要支持横向模式 – 即移除这些标签 – 但是有问题,在销毁/创build循环期间,播放器被停止然后重新启动。 这是可以的,我甚至在onPause()手动执行这个操作来在活动进入后台时停止播放器。 为了在方向变化时保持运行,我尝试将其设置为静态(并使用应用程序上下文创build一次)。 当然,当我现在删除了onPause()中的player.stop()时,它就是我想要的 – 直到 Activity在后台运行。 所以,有两个问题: 如何确定在调用onStop()之后是否直接重新创buildActivity 或者:如何让MediaPlayer在该周期内保持运行,而当应用程序在后台运行时停止运行?

testing运行失败:由于“进程崩溃”,testing运行失败。 testing多个Android活动时

我有一个testing我的android应用程序的问题。 我有2个testCase类,如果我分别执行它们,没有问题,testing运行,直到结束。 但是,如果我在我的testing项目上“右键单击”并select“以Android Junittesting运行”,我已经收到一条消息 Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554 [2012-03-27 15:56:27 – matroussedemaquillageTest] Collecting test information [2012-03-27 15:56:31 – matroussedemaquillageTest] Test run failed: Instrumentation run failed due to 'Process crashed.' 见我的两个testClasses的波纹pipe: 第一个testingclass package fr.smardine.matroussedemaquillage.test; import android.test.ActivityInstrumentationTestCase2; import android.widget.ImageSwitcher; import fr.smardine.matroussedemaquillage.EntryPoint; public class EntryPointTest extends ActivityInstrumentationTestCase2<EntryPoint> { private EntryPoint mActivity; private ImageSwitcher mSwitcher; public EntryPointTest() […]

如何使用后台作业find用户在Interval中访问的应用程序列表?

我想从后台工作中找出用户在特定时间间隔(例如:5分钟)访问的apps列表? 这可能是一个非根植的android手机? 如果可能的话,我非常有兴趣知道答案,因为这将是一个关于android的好学习。

Android – 恢复上次查看的活动

我有3个不同的活动,用户之间没有特定的顺序导航。 我的目标是双重的: 当用户切换到其他应用程序恢复时,我想开始用户离开即使应用程序被终止 当最后一个活动恢复时,我想恢复到最后查看状态(这个我认为我有一个关于如何实现一个不错的主意) 我认为问题不是开始/停止 – 我几乎得到我所需要的,但如果终止应用程序onCreate()。 在这种情况下 – 它select我在清单中configuration的Activity。 我想我可以把东西放在默认活动的onCreate方法,但有没有更好的办法,我可能会失踪?

Android棒棒糖活动屏幕损坏

我用Android Lollipop SDK(21)构build我的应用程序。 打开一些活动并closures它们后,一个活动有这个损坏的屏幕。 它看起来像一个内存错误,但这只发生在Android棒棒糖设备上。 在Logcat我不能看到错误。 任何想法这是什么?