Articles of bundle

将JSON转换为Android Bundle

我想将一个JSON字符串转换为android Bundle。 要求就是直接从服务器将参数作为JSON而不是bundle传递给活动。 如何将JSON字符串转换为Android Bundle? 如果可能,请提供抽象代码。

活动生命周期?

我想我对活动生命周期和捆绑的想法 有点困惑,你能帮帮我吗? 假设用户从主屏幕打开活动A , 活动 “调用” 活动B ,填充屏幕。 在此事件上, onSaveInstanceState()在活动A上调用,然后在onPause()和onStop() 。 由于系统上当前运行的应用程序太多, andorid决定杀死托管活动A的进程。 当用户导航回活动A时 ,我们可以调用onCreate() 使用bundle(在onSaveInstaceStae()的最后一次调用期间设置)来恢复状态。 然后onStart() , onRestoreInsanceState() 和onResume()被调用, 我对吗? 然后让我们假设用户按下后退键以退出活动A. onPause() , onStop()和onDestory()在活动A上按顺序调用onDestroy()虽然可以推迟onDestroy()的调用onDestroy()在这种情况下不应该调用onSaveInsanceState() 。 当用户稍后再打开活动A然后捆绑 传递给onCreate()是null,对吧? 现在假设用户旋转屏幕onSaveInsanceState() , OnPause() , OnStop() , OnDestroy()被调用 然后onCreate()使用最后一次调用onSaveInsanceState()设置的bundle, 然后是onStart()和onRestore()。 我对吗? 我的猜测是: 当用户创建一个活动时,传递给onCreate()的bundle总是为null,并且永远不会调用onRestoreState() ,但是当系统创建它时,例如当它因内存不足或者因为旋转事件而杀死活动时,传递的bundle是最后一次调用onSaveInstanceState()设置的bundle。 我猜对了吗? 谢谢,抱歉我的英语不好。 PS:我认为onRestoreInstanceState()传递相同的bundle传递onCreate()但通常使用onCreate()恢复状态。

为什么在onSaveInstanceState()中保存非Parcelable对象的Hashtable有时会起作用?

在阅读了介绍性的Android编程书之后,我想改变示例应用程序,以巩固我对一些未真正涵盖的主题的理解。 在进行更改时,我犯了一个错误,但我很好奇为什么错误在某些情况下有效而在其他情况下无效。 应用程序中的活动将一系列问题存储在Hashtable ,其中Question是一个包含int和两个字符串的小类。 最初编写时,活动会在每个onCreate()上从服务器下载问题,因此我想实现onSaveInstanceState()以防止一些冗余下载。 onSaveInstanceState()使用putSerializable()将Hashtable保存到Bundle中。 @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // mQuestions is a member variable of // type Hashtable if (mQuestions != null && mQuestions.size() > 0) { outState.putSerializable(SAVED_QUESTIONS, mQuestions); } } 即使在我知道Parcelable是什么或如何实现之前,它也能完美地适应屏幕方向的变化。 我只知道当我按下模拟器的主页键和应用程序静默时出现问题,无法在没有LogCat输出的情况下崩溃。 堆栈跟踪让我查找Parcelable并使Question实现它。 我的问题不是我做错了。 问题是: 当Question类没有实现Parcelable时,为什么应用程序只在按Home而不是屏幕方向更改时崩溃?

Monodroid将parcelable对象捆绑

所以我一直在努力将一些值放入我的重写OnSaveInstanceState中。 我需要在活动重启时保存一些类对象,这意味着它们必须是可以分配的,这对于Monodroid来说似乎是不可能实现的? 资料来源: http : //docs.xamarin.com/android/about/limitations 如何在不使用parcelable的情况下将这些类对象保存到bundle中? 我从服务器加载数据,我不希望再次这样做,例如在用户轮换上,再次调用OnCreate方法。 因此保存它们会很好,这可以节省服务器对偶尔旋转等的压力。

Android – 保存应用程序状态

我想保存应用程序状态,以便能够在另一次启动后恢复它。 使用方法onSaveInstanceState并将其保存到Bundle或使用SharedPreferences是否更好? 谢谢

将数据从活动发送到另一个而不启动它

如果我有两个活动Activity1和Activity2,我想在没有Start Activity2的情况下将数据从Activity1发送到Activity2 我知道如果我想启动Activity2,我在Activity1.java中使用此代码 Intent intent ; Bundle bundle = new Bundle(); bundle.putString(BG_SELECT, hexColor); intent = new Intent(getApplicationContext(), Activity2.class); intent.putExtras(bundle); // this is to start but I want just refresh Activity2 not start it startActivityForResult(intent, uniqueNo); 并在Activity2.java中 bundle = getIntent().getExtras(); if (bundle != null) { bgColor = bundle.getString(SebhaActivity.BG_SELECT); System.out.println(“in Activity2, selected BG: “+bgColor); } 如何在不启动的情况下刷新Activity2以查找其中的数据? 提前致谢。

如何列出 parcelable?

我正在尝试让我的类可以使用,但它里面有一个枚举列表。 我已经看过如何在这里使用单个枚举… 我怎么能这样做? 谢谢! ;)

使用Parcelable将对象从一个android活动传递到另一个

我想做这个 class A extends Activity{ private class myClass{ } myClass obj = new myClass(); intent i = new Intent(); Bundle b = new Bundle(); b.putParcelable(Constants.Settings, obj); //I get the error The method putParcelable(String, Parcelable) in the type Bundle is not applicable for the arguments (int, A.myClass) i.setClass(getApplicationContext(),B.class); startActivity(i); } 如何使用Parcelable将obj传递给活动B?

你能解释一下关于创造和捆绑吗?

我一直在查找它,我似乎无法将自己包裹在onCreate和Bundles周围。 我知道onCreate会在程序启动时被调用,但它会如何传递Bundles以及它们是如何相关的。 任何人都可以试着把它变成简单的英语,因为我似乎无法find它。 谢谢

将整个Bundle保存到SharedPreferences

假设我的方法已经通过了Bundle已经填充了要保存的数据,有没有办法将它保存到SharedPreferences 而不将它 分成整数,浮点数,字符串等? 我更喜欢“一举”编写/提交所有内容的便利性,所以如果使用SharedPreferences无法做到这一点,你会推荐其他持久存储方法吗?