2

とを使用してAndroidアプリを開発していMin-TargetSDK=3ますTargetSDK=15。以前にも、ホームボタンを押してもアプリが最近のアプリに最小化されないことに関連する質問をしました。アプリを起動すると、最後に表示した画面ではなく、ログインページから起動します。しかし、私は今まで解決策を見つけられませんでした。

どういうわけか、ユーザーがホームボタンを押してアプリから他のタスクに切り替えたときに、最後に表示されたアクティビティを表示することができました。それでもアプリは最近のアプリに最小化されていません。

今、いくつかの異なる問題に直面しています:

シナリオ1-OKAY:

  1. SDカードにコピーされたapkファイルからアプリをインストールします
  2. インストール後に[完了]をクリックしました。
  3. 次に、ランチャーアイコンをクリックして開きます。

このシナリオでは、ユーザーがアプリの使用中にホームボタンをクリックし、ランチャーアイコンを使用してアプリを再度開くと、最後に表示された画面が表示されます。ただし、アプリは[最近のアプリ]リストに表示されません。

シナリオ2-問題:

  1. SDカードにコピーされたapkファイルからアプリをインストールします
  2. インストール後、「開く」ボタンをクリックして開きます。

このシナリオでは、ユーザーがアプリの使用中にホームボタンをクリックし、ランチャーアイコンを使用してアプリを再度開くと、最後に表示された画面が表示されません。代わりに、ログインページから開始します。また、最近のアプリリストにリストされていないアプリ。これが私のマニフェストファイルです:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.net.elderlyhealth"
android:versionCode="1"
android:versionName="1.0" >

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<uses-sdk android:minSdkVersion="3"
    android:targetSdkVersion="15"/> 

<application 
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".ElderlyActivity" android:alwaysRetainTaskState="true"
        android:label="@string/title_activity_elderly" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity  android:name=".ElderlyHealthAct" />


    <activity android:name=".account.LoginPage"  />
    <activity android:name=".account.SignupPage" />
    <activity  android:name=".account.RoleNavigator" />
    <activity  android:name=".account.CreateRoleActivity"  />
    <activity  android:name=".account.RoleAdmin"/>
    <receiver   android:name=".server.AlarmReceiver"></receiver>

</application>

</manifest>
4

1 に答える 1

2

これはあなたの2番目のシナリオでうまくいくと思います。最初のアクティビティのフラグを確認FLAG_ACTIVITY_BROUGHT_TO_FRONTonCreate()、設定されている場合は終了できます。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
    // Here activity is brought to front, not created,
    // so finishing this will get you to the last viewed activity
finish();
return;
    }

// Regular code.
}
于 2013-04-18T10:16:06.987 に答える