0

私はグーグルの後でAndroidの初心者です。使用する必要がある別のアクティビティを呼び出す場合に見つけました
Intent intent = new Intent(getBaseContext(), Activity_Name.class);
//if Any Extra
//intent.putExtra("", "");
intent.putExtra("EmpID", EmpID);
startActivity(intent); `

これは標準的なアプローチですが、画像を参照すると. ListView (Activity1) で 20 回近くロッピングしています。 ワークフロー

アプリが後で適切な理由もなく、特定の場所ではなくクラッシュするため、これが何度も何度も追加され続けると私は信じています。

DataCollection 画面の[戻る] ボタン無効にしました (アクティビティ 2、3、4)

したがって、純粋なウォーターフォールアプローチです。なにか提案を。finish();最後の画面に行を追加する必要が ありますか

Intent intent = new Intent(getBaseContext(), Activity_Name.class);
//if Any Extra
//intent.putExtra("", "");
intent.putExtra("EmpID", EmpID);
startActivity(intent);
finish(); `

死んで前に行き、それが死んで前に行くように。そして後でListViewに着陸します。

それは良いアプローチでしょうか。または、このような別のアクティビティを呼び出すことができるものはありますが、システムは以前のアクティビティ情報をすべて忘れる必要があります。

4

3 に答える 3

1

あなたはおそらくstartActivityForResultむしろを使用する方が良いでしょうstartActivity。次に、アクティビティを呼び出すと、アクティビティが終了すると、それを呼び出したアクティビティに戻ることがわかります(になりますonActivityResult)。このようにして、次のことを実現できます。

Activty 1 -> Activity 2 -> Activity 1 -> Activity 3 -> Activity 1 etc

また

Activty 1 -> Activity 2 -> Activity 3 -> Activity 2 -> Activty 1 etc

どちらの場合も、アクティビティの「通過」フェーズを非表示にしておくことはできません。「呼び出したアクティビティ」トリガーを受信して​​、次のアクティビティに渡すことができます。

于 2013-03-19T21:46:15.010 に答える
1

または、このような別のアクティビティを呼び出すことができるものはありますが、システムは以前のアクティビティ情報をすべて忘れる必要があります

FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_CLEAR_TOPなどの Intent Flagsをご覧ください。

于 2013-03-19T21:40:58.560 に答える
1

ユーザーに逆戻りさせたくない場合は、新しいアクティビティを開始した直後に現在のアクティビティを終了してください。

startActivity(intent); 

電話

finish();

アクティビティ スタックをクリアしたい場合は、特定のアクティビティに移動するときにマニフェスト (「アクティビティ 1」など) を見つけて、属性を追加します。android:clearTaskOnLaunch="true"

詳細はこちら: http://developer.android.com/guide/topics/manifest/activity-element.html#clear

于 2013-03-19T21:39:04.687 に答える