0

ActivityA と ActivityB の 2 つのアクティビティがあります。

ActivityA には、次のテキストを含む TextView があります。

<a href="com.myapp.mydata.user/23">John</a> is a great person.

ユーザーがリンクをクリックすると、マニフェストでイベントを取得し、ActivityB を開きます。

ActivityB にいくつかの情報が表示されています。Android の標準の [戻る] ボタンをクリックすると、ActivityA の onCreate メソッドが再度実行されます。

私のオプションは何ですか?

4

3 に答える 3

1

When a user clicks on the link, I get the event on the manifest and opens ActivityB.ActivityB次に、これはスタックの上に置くことを意味します...これは予想されます。あなたができることは、開店直前に電話finish()をかけることです。このようにして、スタックから削除しています。それから戻ると、アプリは以前のものを表示します- そこに何かあった場合。ActivityAActivityBActivityAActivityBActivityA

あなたの場合、ActivityAリソース(通常はメモリ)を再利用するためにAndroidシステムによって破壊されているようです。またはDeveloper Options、チェック済みで、そこにDon't keep activitiesチェック済みの場合もあります。

EDIT : @merendicaからの正当性に関する以下の合理的で公正なコメントのため、また反対票を投じました:属性が null でないActivityAonCreate()どうかを確認することで、アクティビティが再作成されたかどうかを確認できます:Bundle

if(savedInstance == null) {
// activity newly created
} else {
// activity re-created either because of screen rotation 
// or user returned at some point to this activity
}

そのため、アクティビティが再作成された場合は、現在使用しているロジックを呼び出さないでください。

于 2013-10-23T12:55:47.443 に答える