2017-07-19 19 views
7

アンドロイドOのPiPモードでスタックやタスクを管理する経験やアドバイスはありますか?Android Oピクチャインピクチャモードのタスクリストとバックスタック

PiPモードに入ると、現在のタスクスタックからアクティビティが切り離されているようです。終了しても元に戻りません。

はChromeは、他のアプリをナビゲートバックのウェブページで終わるために、フルスクリーンと押しにピップをバック復元することができ、あなたがピップモードに入ることでのPiPを使用している場合、正しくバックスタックを扱うように思われます。また、PiPモードのときにタスクリストにChromeが表示されません。何かが欠けているのですか、Chromeが何か特別なことをしているのでしょうか、あるいはタブとフルスクリーンビデオのために1つのアクティビティだけを使用しているのでしょうか?

基本的に私は、アプリケーション全体を復元したい、それが戻ってPiPから戻ってくるときに我々はPiPのに入った時点でのスタックです。

答えて

4

残念ながら、Google Apps(YouTube、Duo、Chrome)は1つのアクティビティのみを使用する傾向があるため、この問題は発生しません。PiPに入るときや離れるときにrecentsメニューにタスクの問題はありませんアクティビティが1つのタスクは1つだけです。このため、これらのアプリがPiPモードになっているときに、recentsメニューにエントリが表示されないのはこのためです。それはAPIによって隠されています。あなたのアプリで複数のアクティビティを使用している場合

、あなたはこの問題に実行されます。これは特に、ビデオ再生のためにアプリケーションを起動したタスクで、ほとんどのアプリが新しいアクティビティを使用するため、一般的です。

ベストプラクティスは、ビデオプレーヤーのアクティビティを独自のタスク(ユニークなタスクアフィニティを設定)にし、recentsメニューから非表示にすることです。これにより、PiPに入り込んだり終了したりするときの動作が期待されるだけでなく、ユーザーがPiPタスクを妨げずに(他のタスクを介して)残りのアプリケーション全体をナビゲートできるようになります。残念ながら、これは、ユーザーが再生リストからあなたのビデオプレーヤーを再入力することができないことを意味します。ユーザーがホームボタンまたはrecentsボタンを使用すると、ビデオプレーヤーのタスクが破棄され、プレーヤーのアクティビティが終了します。

<activity 
      android:name=".YourVideoPlayerActivity" 
      android:resizeableActivity="true" 
      android:configChanges="keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" 
      android:supportsPictureInPicture="true" 
      android:launchMode="singleTask" 
      android:taskAffinity=".YourVideoPlayerActivityTask" 
      android:excludeFromRecents="true" 
      android:noHistory="true" 
      android:autoRemoveFromRecents="true" /> 
関連する問題