0

したがって、ユーザーがプログラムを開くたびにロードする必要があるロードアクティビティがあります。マニフェストのメインアクティビティとして読み込みアクティビティがあります。ロードアクティビティが成功すると、HomeActivityが起動します。HomeActivityから戻るボタンを押すと、アプリに再度アクセスしようとすると、LoadingActivityが起動します。HomeActivityからホームボタンを押すと、それを起動すると、LoadingActivityに移動せずにHomeActivityに戻ります。

私はそれら、clearTaskOnLaunchとFinishOnTaskLaunchを追加してみました。ホームボタンをキャプチャしようとしましたが、機能しません。HomeActivityに、HomeActivityの上に開くアクティビティを開始させてから、そこにドロップダウンさせるため、onPauseまたはonStopを終了できません。何をすべきかについてのアイデアはありますか?ここにマニフェストがありますが、Androidマニフェストのことをまだ学んでいるので、私を殺さないでください。

<activity
        android:name=".start.LoadingActivity"
        android:screenOrientation="portrait" 
        android:clearTaskOnLaunch="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".HomeActivity"
        android:label="@string/title_activity_home"
        android:screenOrientation="nosensor" 
        >
    </activity>
4

1 に答える 1

0

ホームボタンのデフォルト機能は、アクティビティを強制終了せずにホーム画面に移動することです。Androidユーザーは、ホームボタンを押してアプリに戻ったときに表示されていた画面が見つかることを期待しています。だから私はあなたがあなたのデザインを変えることをお勧めします。ただし、自分のやり方で実行する必要がある場合は、使用できるロジックが1つあります。

メインアクティビティを起動するたびに、共有設定にフラグを設定します(from_main = trueなど)。次に、メインアクティビティのonPauseで、from_mainがtrueかどうかを確認します。それが本当の場合はfinish()を呼び出します。そうでない場合は、何もしないでください。

これで、メインアクティビティから別のアクティビティを起動するときに、共有設定のフラグfrom_mainをfalseに設定します。

このようにして、メインから他のアクティビティを起動する前、または起動した後にonPauseが呼び出されているかどうかを確認できます。起動する前の場合は、メインが終了しないため、ドロップダウンできます。起動後であれば、メインアクティビティを終了します。

于 2012-10-06T01:35:09.220 に答える