1

私の苦境を説明させてください。

私はしばらくの間アプリを構築しており、すぐに私のMainActivity.class. このアクティビティをAndroidManifest.xmlファイルで次のように宣言しました。

<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

次に、アプリにログイン アクティビティを追加する必要があることに気付きましたNewMainActivity.class。この新しいアクティビティをうまく実装できました。そして<intent-filter>、古いMainActivity.classものを次のように変更しました。

<intent-filter>
   <action android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

しかし、ここで私の問題が発生します。

ログイン ページ ( NewMainActivity.class) で戻るキーを押すonPause()と、、、、onStop()およびonDestroy()メソッドが実行されます。アプリを再度起動すると、ログイン ページ ( NewMainActivity.class) が表示されず、代わりに古いページMainActivity.classが表示されます。

私がまだ欠けている/間違っていることを誰かが推測できますか? 常にログインページから開始する必要があるように思えます。コードサンプルが役立つかどうか教えてください。

4

2 に答える 2

0

古い MainActivity.class から、定義したインテント フィルターを削除します。

<intent-filter>
   <action android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

更新:最初はあなたの質問を間違って理解していました。私が削除を提案したインテント フィルターは、アクティビティをエクスポートする以外には何もしません。これは、任意のアプリケーションが MainActivity.class のアクティビティを呼び出すことができることを意味します。そのため、いずれにしても削除する必要があります。

次に、ログイン アクティビティについて説明します。私が理解しているように、あなたのシナリオは次のとおりです。アプリケーションを起動すると、最初にログイン アクティビティが開始されます。次に資格情報を入力すると、ログイン プロセスが成功すると、メイン アクティビティが表示されます。

したがって、スタックにはログインとメイン クラスの 2 つのアクティビティがあります。次にホームボタンを押してアプリケーションをもう一度実行すると、スタック内の最後のアクティビティ、つまりメインアクティビティから開始されます。

したがって、問題はインテント フィルターにはありません。活動を終了する必要があります。この場合、常にログイン アクティビティから開始します。

于 2012-02-19T23:20:16.337 に答える
0

最初に Yury の提案が機能せず、複数のコンピューター間でワークスペースをコピーして貼り付け、毎回プロジェクトを eclipse にロードするという、私がしたことと同様のことをした場合は、新しいプロジェクトを開始し、実際のテキストをコピーしますすべてのクラスを新しいプロジェクトの新しいクラスに変更します。

于 2012-05-19T16:26:13.377 に答える