問題タブ [onconfigurationchanged]
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 - アクティビティ onConfigurationChanged の条件付き再起動
ある条件で方向を変更できるアクティビティを作成したいのですが、そうでない場合はできません。より正確には、バックグラウンド スレッドがビジー状態のときにアクティビティが再開されないようにしたいと考えています。
configChanges
アクティビティ マニフェストに属性を配置onConfigurationChanged
し、向きが変わると呼び出されます。ただし、許可されている場合は、アプリが向きを変更できるようにしたいと考えています。
android - onConfigurationChangedでルートレイアウトの新しい幅/高さを取得するにはどうすればよいですか?
ビューの1つには、ScrollView
ルートレイアウトとしてがあります。デバイスが回転して呼び出されたときに、の新しい幅/高さonConfigurationChanged()
を取得できるようにしたいと思います。ScrollView
コードは次のようになります。
AndroidManifest.xmlの関連セクションは次のようになります。
そして最後に、レイアウトの関連部分は次のようになります。
私たちのドロイドでは、ScrollViewの幅が横向きに切り替えられると854になり、縦向きに戻ると480になると予想していました(そして高さはメニューバーを除いた同等の切り替えを行います)。ただし、その逆が見られます。LogCatは次のとおりです。
明らかに、横向きに切り替えると縦向きの寸法になり、縦向きに切り替えると横向きの寸法になります。私たちが間違っていることはありますか?私たちはハッキーになってこれを解決することができましたが、私たちが欠けている単純な解決策があるように感じます。
android - Android で回転するアクティビティの処理
アクティビティの縦向きと横向きに異なるレイアウトを適用する必要があります。また、縦向きの場合はアラートを表示する必要があります。
android:configChanges="orientation|keyboardHidden"
AndroidManifest で指定しています。また、次のように onConfigurationChanged メソッドをオーバーライドします。
横向きから縦向きに回転すると、ログは次のようになります。
しかし、縦から横に変更すると、次のようになります
onConfigurationChanged が 2 回呼び出されるのはなぜですか? どうすれば回避できますか?
android - Android:広告を押すと、向きがロックされたアクティビティの向きが変わります
私のアプリのすべてのアクティビティは、以下を使用して縦向きにロックされています。
いくつかのアクティビティの上部に広告が表示されています。電話を横に傾けて広告を押すと、基になるアクティビティが横向きに変わります。オーバーライドしようとしました
設定をポートレートに設定し、スーパーにコールスルーしますが、効果はありません。これを修正する方法、または何が起こっているのかについての手がかりはありますか?
java - androiddb4oはオブジェクトを適切に非アクティブ化します
私がdb4oを使用している方法は、実際には読み取り専用です。私はアプリケーションと一緒にdbをパッケージ化し、それに対してバックグラウンド更新を時々行いますが、これは別の方法で処理できます。しかし、データベースからのデータを表示している私のアクティビティでは、更新を行う必要がないので、この理由で、データベースからデータを取得し、そのデータを「非アクティブ化」して、アクティビティが画面の向きが変わるなどの理由でconfigurationChangeを実行すると、アクティビティをすばやくレイアウトし直すことができます。オブジェクトを非アクティブ化して、アクティビティで引き続き使用できるようにする適切な方法は何ですか。現在、私は次のようなコードを持っています
私はこのようなことをしてみました
しかし、それは機能していないようです。リストの各項目を繰り返し処理して非アクティブ化する必要がありますか?
Androidで画面の向きを変更すると、データベースを閉じるアクティビティの閉じるメソッドがヒットします。しかし、その後バックアップを開始し、mListに再度データを入力したくありません。
com.db4o.ext.DatabaseClosedException
アクティビティのレイアウトで次のようなことを行うため、「」例外が発生し続けます。
私は本当にオブジェクトを非アクティブ化したいだけですb/ciはそれらを更新する必要はありません、どうすればこれを行うことができますか?
android - Android - 画面の向きを処理する
私は現在、画面の向きに応じて動作が異なる Android アプリケーションに取り組んでいます。
getWindowManager().getDefaultDisplay().getRotation() を使用して onCreate() メソッドで画面の向きを取得し、そこから管理しています。
基本的に、私の問題は、向きを制御する必要があることです。横向きモードでは、ユーザーが決定すると、アプリケーションは縦向きモードに切り替える必要があり、その状態を維持しますが、使用が縦向きモードになり、次に横向きになるまでのみです。
私は setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) を使用して、横向きのときに向きを変更しています。問題は、これを使用すると、ランドスケープに戻れないことです。onCreate() で setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) を使用すると、問題は数秒後に横向きモードに切り替わることです (画面がまだ横向きであるため)。
これを管理する他の方法はありますか?基本的に、listner を使用して画面の向きの変更をキャッチする方法はありますか (または、ビューが縦向きモードでロックされている場合は呼び出されないため、onCreate 以外の場所)。私はそれについて何も見つけることができません...
どんなアイデアでも大歓迎です!
ありがとう!
android - 画面の向きを変更するとAndroidアプリがクラッシュする
複数の画面をサポートするアプリケーションを開発しています。3つのレイアウト(大、小、中)を作成しました。私はそれをテストしています。サインインとサインアップの2つの画面があります。
サインインで正常に動作しています。しかし、サインアップボタンをクリックすると、サインアップページに移動します。ポートレートモードでモードを変更すると、アプリがクラッシュし、logcatにもクラッシュレポートのようなものはありません。
android - スライド アウト キーパッド電話の方向アクティビティ ライフサイクルを修正しました。
マニフェストに、Activity
向きが固定されたがあります。android:screenOrientation="portrait"
エミュレーターで Cntl-F11 を押すと、ユーザーがデバイスのキーボードをスライドすると、Activity
が破棄されonCreate
て呼び出されることに気付きました。
しかし、非スライド アウト キーボード デバイスを使用するとActivity
、縦向きにロックされているため、デバイスが破壊されることはありません。
デバイス間で動作に違いがあるのはなぜですか? 縦向きにロックされているアクティビティが構成変更を呼び出すのはなぜですか? これは本当にイライラします。
編集:android:configChanges="orientation
私も目立った違いなし で実験しました。
android - アンドロイドでの取り扱い方向の変更
向きが変わったときに、自分の活動の1つに別の見方をしたかったのです。layout-landフォルダーを作成してactivity1.xml
そこに追加しましたが、向きを切り替えても通常のアクティビティが表示されます。
それを機能させるために他に何かする必要がありますか?
ありがとう。
android - アンドロイドでは、向きが変わっても背景画像は変わりません
定義されたActivityGroupの線形レイアウトがあります
そして、私は「drawable」と「drawable-land」フォルダに2つの背景のドローアブルを持っています。向きが変わるとすべてが正常になりますが、向きによって背景は変わりません。それは常に背景の最初の描画可能性を維持します。
onConfigurationChanged
次の行を追加して、メソッドで手動で変更しようとしました。
それは問題を解決します。ただし、構成が変更されたり、アクティビティを通過したりするたびに、大量のメモリリークが発生します。
編集:theme.xmlを作成して、ウィンドウの背景画像を定義します。XMLファイルに含まれるもの:
AndroidManifest.xmlを次のように変更しました
レイアウトから背景要素を削除しました。何も変わっていません。デバイスの向きが変わると新しいドローアブルを取得できず、最終的にアプリケーションがクラッシュする原因となるメモリリークが発生します。
向きが変わるときにドローアブルを強制的に変更する他の方法はありますか?または、アプリケーションがメモリリークを発生させる理由はありますか?
編集:メモリリークの問題について、 Androidのメモリ使用量の問題でActivityGroupの使用について質問しました