【问题标题】:two different Bundle objects?两个不同的 Bundle 对象?
【发布时间】:2011-11-11 17:38:38
【问题描述】:

我对以下方法中的两个不同的 Bundle 对象有疑问:

onSaveInstanceState(Bundle outState);
onCreate (Bundle savedInstanceState);

android 系统如何知道 onCreate 方法中的 bundle 对象是程序员用来保存他/她的活动状态的对象,而 onCreate 方法使用该 Bundle 对象来获取被系统杀死的活动状态? 是 Bundle 对象之一的 Activity 类成员和 super.saveInstanceState(outState); 将 Bundle 保存在 Activity 的 Bundle 对象中,当活动调用 onCreate(Bundle ) 方法时,此成员发送到 onCreate 方法?如何在 onCreate( ) 方法中使用 Bundle?
请帮帮我...

【问题讨论】:

    标签: android


    【解决方案1】:

    您保存在onSaveInstanceState 方法包中的值将在onCreate 中发回给您。作为其工作原理的示例。

    1. 你接到一个电话。
    2. 您的 Activity 已停止并调用 onSaveInstanceState。您在此捆绑包中添加了一个值。
    3. Android 完成您的活动并销毁该实例,因为操作系统需要内存。
    4. 用户返回到您的应用程序。
    5. 捆绑包是从 Android 代表您维护的某种类型的持久性存储重新创建的。现在你的 onCreate 可以获取你在 onSaveInstanceState 期间放置在包中的值

    示例

       @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.lldr_activity);
    
        mFilterCheckbox =  (CheckBox) findViewById(R.id.checkbox_id);
        if(savedInstanceState != null) {
            mFilterCheckbox.setChecked(savedInstanceState.getBoolean("FILTER_STATE", false));
        }
    }
    
     @Override
        protected void onSaveInstanceState(Bundle outState)
        {
            super.onSaveInstanceState(outState);
            outState.putParcelable("FILTER_STATE", mFilterCheckbox.isChecked());
        } 
    

    【讨论】:

    • 谢谢你能给我一个例子我如何在 onCreate 方法中使用这个包?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多