2012-03-24 16 views
0

基本的な疑問。私は次のコードで作業しています。Hello World Androidのバンドルを理解するのに役立つ

package com.example.helloandroid; 

import android.app.Activity; 
import android.os.Bundle; 

public class HelloAndroidActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 
} 

バンドルsavedInstanceStateは何が含まれているのだろうか?
OnCreate関数がオーバーライドされたメソッドですので、私は「savedInstanceStateは」基本クラスから任意の情報を取得することはありませんと感じています。
この場合、super.onCreate(savedInstanceState)は実行できません。
私の理解が間違っているところで私を助けてください。ありがとうございます。

答えて

1

それはあなたがonSaveInstanceStateのご@Overrideにそこに置か何でも持っています。

onSaveInstanceStateは、システムが後で再作成するためにその状態を保存する必要があるときに呼び出されます。方位の変化はこれらの場合の1つです。あなたが縦と横を切り替えると、onSaveInstanceStateが呼び出され、渡されたバンドルに記入されます。onCreateは同じバンドルで呼び出されます。

onCreateがsavedInstanceStateで呼び出されるたびので、その後、あなたはこのからではなく、最初からあなたの活動を初期化する必要があります。

EDIT:コメントからコピー説明:あなたのonSaveInstanceStateあなたがバンドルのputXxxxメソッドを呼び出しますで

- 値があなたの活動の現在の状態を表すものは何でも、あなたがバンドルにその「を置く」でしょう。そのバンドルを将来のonCreateに戻すことで、中断した場所からアクティビティを再作成することができます。

onSaveInstanceStateを実装していない場合はonCreatesavedInstanceStateのパラメータがnullになり、無視しても問題ありません。迅速な対応のための

+0

おかげで....今のところ、私は私のcode.SoでonSaveInstanceStateを使用していないが、どのようにコードは、基本的なJavaから?.......「savedInstanceState」のために取るものを知っているだろう私の介入なしに派生クラスの引数がどのように初期化されるのか分かりません。値は、あなたの活動の現在の状態を表すものは何でも、あなたがバンドルにその「を置く」だろう - あなたの 'onSavedInstanceState'あなたがバンドルのputXxxxメソッドを呼び出しますで –

+0

。将来の 'onCreate'でそのバンドルを取り戻すことができます。これにより、中断した場所からアクティビティを再作成することができます。 – dldnh

+0

私は何を言っているのかを知っています......しかし、私の疑問は上記のコードに関係しています。そのコードでは、私はonSaveInstanceStateを使用していません。では、コードは "savedInstanceState"のためにどのような値を取るべきかを知っていますか? –

関連する問題