アクティビティがアプリケーション内で呼び出されたかどうかを確認するにはどうすればよいですか?私のアプリケーション内でアクティビティが呼び出されたかどうかを確認します
私の問題は、ユーザーが別のアプリケーションから来て、私がまだバックグラウンドにいる場合にのみデータを更新したいということです。
ありがとうございます!
アクティビティがアプリケーション内で呼び出されたかどうかを確認するにはどうすればよいですか?私のアプリケーション内でアクティビティが呼び出されたかどうかを確認します
私の問題は、ユーザーが別のアプリケーションから来て、私がまだバックグラウンドにいる場合にのみデータを更新したいということです。
ありがとうございます!
onRestartイベントを使用できますか?
考えられる考え方は、プロセスを逆にすることです。つまり、アクティビティがアプリによって開始されたかどうかを判断することです。
あなたは、あなたがあなたの別のアクティビティから戻ってきたかどうかを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;
}
はありません。 – Patrick