2011-08-10 11 views

答えて

0

onRestartイベントを使用できますか?

+0

はありません。 – Patrick

1

考えられる考え方は、プロセスを逆にすることです。つまり、アクティビティがアプリによって開始されたかどうかを判断することです。

あなたは、あなたがあなたの別のアクティビティから戻ってきたかどうかをonResume()で調べるアクティビティAを持っているとします。 startActivityWithResult()でAから発信される他のすべてのアクティビティを開始し、その結果をonActivityResult()にチェックインできるようにする必要があります。 onActivityResult()はonResume()の前に呼び出されるため、onResume()でチェックインするブール値フィールドを設定できます。

ので、コードは次のようになりますことはできません

private static final int RANDOM_ACTION_CODE= 42; 

private Button fButton; 

private boolean returning= false; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    fButton= (Button) findViewById(R.id.button1); 
    fButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    Intent i= new Intent(this, SecondActivity.class); 
    startActivityForResult(i, RANDOM_ACTION_CODE); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    Toast.makeText(this, "returning = " + returning, Toast.LENGTH_LONG).show(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == RANDOM_ACTION_CODE) 
     returning= true; 
    else 
     returning= false; 
} 
+0

良いアイデアだが、うまくいかない。 – Patrick

+0

私の答えが更新されました - このように動作するはずです。 – Tom

関連する問題