問題タブ [multi-window]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - マルチウィンドウをサポートしない新しいアクティビティの開始
MyMainActivity
は、Android N の新しいマルチウィンドウ モードをサポートしています。ただし、AwesomeActivity
マルチウィンドウをサポートしないでください。
私は次のことを試しました:
AndroidManifest.xml
MainActivity.java
Intent.FLAG_ACTIVITY_NEW_TASK
(の有無にかかわらずIntent.FLAG_ACTIVITY_CLEAR_TASK
)を追加するAwesomeActivity
と、それが独自のタスク スタックのルート アクティビティになるため、 でマルチウィンドウ モードに入ることができないはずだと考えましたAwesomeActivity
。
ただし、これは機能しません。 からマルチウィンドウ モードに切り替えることはできますがAwesomeActivity
、これは望ましい動作ではありません。
の組み合わせはIntent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK
AwesomeActivityを起動するように見えますが、AwesomeActivityでアプリをバックグラウンドに置いてからAwesomeActivityをフォアグラウンドに戻すと、MainActivityに戻ることができなくなるという意味では機能しません。タスクスタックから消去されました。ほとんどの場合、ユーザーは元に戻りたいと考えているMainActivity
ため、このソリューションでは不十分です。
android - Android N マルチ ウィンドウ モードでホーム ボタンが押されたときにアクティビティ onStop() が呼び出されない
Android N マルチウィンドウ モードをサポートするビデオ アプリを作成しようとしています。マルチウィンドウ モードでアクティビティのライフサイクルが混乱することを発見しました。この現象は、アプリがトップ画面にレイアウトされ、画面全体が縦向きになっているときにホームボタンをクリックすると、上部のアプリonPause()
が呼び出されますがonStop()
、呼び出されません。
Google のガイドラインhttps://developer.android.com/guide/topics/ui/multi-window.html#lifecycleによると、ビデオ アプリは、onStop()
コールバックではなくonPause()
コールバックでビデオの再生を一時停止する必要があります。
この状況では、ホーム ボタンが押され、アクティビティがバックグラウンドになり、ユーザーに表示されなくなります。アプリはビデオの再生を一時停止する必要がありますが、onStop()
コールバックを取得できません。その間、アクティビティはonMultiWindowChanged()
コールバックを起動しません。これは、バックグラウンドにあるにもかかわらず、アクティビティがまだマルチウィンドウ モードであることを意味します。この場合、isInMultiWindowMode()
が返さtrue
れます。
アプリが左側の画面にあり、画面全体が横向きの場合も同じ問題が発生します。
この質問を検索したところ、誰かがすでに問題を Google に投稿していることがわかりましたが、Android Nougat リリースでは処理されていません。
では、このような状況でビデオの再生を一時停止する適切なタイミングはいつでしょうか? コールバックでビデオを一時停止するとonPause()
、アクティビティがマルチウィンドウ モードでユーザーに表示される場合があります。onStop()
そうしないと、この場合、コールバックを取得できません。このような場合の適切な回避策はありますか?
java - 最近使用したボタン、マルチ ウィンドウ モード、またはホーム ボタンであるかどうかを検出する方法 onUserLeaveHint()
私のアプリではonUserLeaveHint()
、ユーザーがホームボタンを押したときにメソッドに依存していますが、このメソッドは、「最近のボタン」を長押ししてAndroid 7.0でマルチウィンドウモードを開始するときにも呼び出されています(実行したくない)ホームボタンを押したときと同じこと)。だから、どれがどれであるかを検出する方法があるかどうか知りたいです。乾杯!
注: 後onMultiWindowModeChanged()
に呼び出されます onUserLeaveHint()
android - マルチウィンドウ モードでパーセント パディングを使用する Google Maps API v2 newLatLngBounds がエラーをスローする
小さなデバイスで動作するように、デバイスのパーセンテージLatLngBounds
に基づいてパディング セットを使用してカメラをアニメーション化しています。width
これは 4 インチ ディスプレイの小型デバイスでも機能しますが、Android 7.0 のマルチウィンドウ モードとそれ以前のマルチウィンドウ モードをサポートするデバイスでは失敗します。ギャラクシー S7。
マルチウィンドウ モードのデバイスで次の例外が発生します。
疑わしいコードは次のとおりです。
newLatLngBounds
すべてのデバイス幅とマルチウィンドウ モードでパディングを適切に設定するにはどうすればよいですか?