0

いくつかのアクティビティを持つアプリケーションがあります。そのうちの 1 つはログイン アクティビティで、このアクティビティはマニフェストのアプリで MAIN として定義されています。

<activity
        android:name="com.company.myapp.AuthorizationMainActivity"
        android:label="@string/app_name" 
        android:launchMode="singleTask" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

アプリがバックグラウンドに入ったとき (たとえば、ホーム ボタンを押したとき) に問題が発生し、アプリを再度開くと、ログイン ページが表示されます。アプリケーションがバックグラウンドに入る瞬間にユーザーに対してアクティブだったアクティビティを表示するにはどうすればよいですか?

4

3 に答える 3

0

起動するベース アクティビティとしてダミー アクティビティを使用し、そのアクティビティ チェックで、ログイン アクティビティまたは別のアクティビティを表示する必要があるかどうかを確認します。次に、ダミー アクティビティから目的の特定のアクティビティを開始します。

noHistoryユーザーが戻って移動できないように、マニフェストでダミー アクティビティを設定してください。

if(needsLogIn){
    Intent i = new Intent(this,LoginActivity.class);
    startActivity(i);
}else{
    Intent i = new Intent(this,OtherActivity.class);
    startActivity(i);
}
于 2013-05-24T18:51:37.610 に答える
0

Android:launchMode="singleTask" を削除 > singletask アクティビティがルートになり、ホーム ボタンを押すと、その上のすべてのアクティビティが削除されます。android:launchMode="singleTask" を削除すると、デフォルトの動作が行われます。つまり、ホームボタンを押してから再度起動すると、離れたところからアクティビティが開きます。リンクを見てくださいhttp://developer.android.com/guide/components/tasks-and-back-stack.html

于 2013-05-24T19:26:51.267 に答える