2012-08-30 10 views
7

私は、サインインした後にウェルカム画面にあなたを投函するアプリを持っています。私はバッフル付きだアクティビティの開始時にonResume()が呼び出されるのはなぜですか?

//create new intent 
Intent log = new Intent(getApplicationContext(), Welcome.class); 
// Close all views before launching logged 
    log.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(log); 
    // Close Login Screen 
    finish(); 

:私はときonResume火災見るためにトーストを入れて、それはまたのonCreate

protected void onResume(){ 
    super.onResume(); 
    Database openHelper = new Database(this);//create new Database to take advantage of the SQLiteOpenHelper class 
    myDB2 = openHelper.getReadableDatabase(); // or getWritableDatabase(); 
    myDB2=SQLiteDatabase.openDatabase("data/data/com.example.login2/databases/aeglea", null, SQLiteDatabase.OPEN_READONLY);//set myDB to aeglea 
     cur = fetchOption("SELECT * FROM user_login");//use above to execute SQL query 
     msg.setText("Username: "+cur.getString(cur.getColumnIndex("username")) 
        +"\nFull name: "+cur.getString(cur.getColumnIndex("name"))+" "+cur.getString(cur.getColumnIndex("last")) 
        +"\ne-mail: "+cur.getString(cur.getColumnIndex("email")) 
        +"\nAeglea id:"+cur.getString(cur.getColumnIndex("uid"))); 

     Toast.makeText(getApplicationContext(), "RESUMED", Toast.LENGTH_SHORT).show(); 
} 

後に発射することがから来ています。ここにいくつかの経験を提供してください

+1

'onPause'または' onResume'? – zapl

+0

@zapl申し訳ありません私の質問を編集します – MayTheSchwartzBeWithYou

答えて

19

私はあなたに何を求めようとしているのか、それとも何が問題なのかよく分かりません。しかし、私はあなたが "Android Activity LifeCycle"を読むことをお勧めし、アンドロイドが他の言語やプラットフォームと同じではないという疑念の多くを解消します。

enter image description here

注:あなたの活動が目に見えるようになるよう OnResumeが、活動は「可視」であるたびにように何度も呼んで、あなたのメソッドが呼び出されます同じ回数。メソッドを初めて呼び出す場合は、OnCreateを探してください。

+0

メモは私にもっと明確になりました – MayTheSchwartzBeWithYou

+1

あなたの歓迎ピーター、私はこれが将来あなたを助けることを願っています。 –

6

アクティビティのライフサイクルの状態図をご覧ください。

これは、メソッドが呼び出されているためである:

    1. のonCreate()
    2. ONSTART()
    3. onResume( - >活性は

    http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycleを実行しています

  • +0

    はい私はそれほど多くを想定しましたが、onPauseが発生したときにonResume()がトリガーされたと考えました。 – MayTheSchwartzBeWithYou

    +1

    それは全く問題ありません。 Android上ではいくつかの点が異なるだけですが、あなたが知っていればそれは大好きです。始めに、onActivityResult(..)がonResume(..)の前に呼び出されていることを知ると、私はショックを受けました。 – Ivo

    2

    後は、あなたも、最初の起動時に呼び出されonStartonResumeを取得する理由は、それが簡単にコードを書いなることです通常Activity Lifecycle

    です。

    onResumeに戻る前に、を除いて「再開」状態を終了する方法がないため、が呼び出されると想定できます。その動作は、onResumeのものを初期化し、さらにチェックすることなくそれらを初期化するために使用することができます。 onResumeが最初に呼び出されたことを確認できない場合は、スキーム全体が壊れます。

    脇役:onXYZメソッドのいずれかからデータベースにアクセスしないでください。これは、むしろUIを描画してタッチイベントを処理するUIスレッドをブロックするためです。

    関連する問題