問題タブ [android-activity]
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 - Android: ウェイクロック & ハンドリングの向きの変更
アプリが表示されているときに電話がスリープ状態にならないように、アプリケーションで Wakelock を使用しています。
問題は、向きの変更があり、システムが横向きモードでアプリを破棄して再作成するときに発生します。ウェイクロック タイマーがバックグラウンドで期限切れになった場合、システムはウェイクロックのリリースを画面をオフにする機会と見なします。
編集: Wakelock onResume を設定し、onPause を解放していることに言及する必要があります。私が理解しているように、アプリがウェイクロックをリークするのを防ぐために解放する必要があります。
向きの変更を続行するには、ウェイクロックが必要です。
以下に、これに対する解決策を概説しました。これはそれを処理するための好ましい方法ですか?代替手段はありますか?
(アクティビティではなく) ウェイクロックを保持するサービスを作成し、アクティビティがバインドを解除すると、サービスはカウントダウン タイマー (たとえば 10 秒間) を開始します。単純な向きの変更の場合、アクティビティはその 10 秒以内に再バインドされるため、ウェイクロックが維持されます。そうでない場合は、ウェイクロックが解放されます。
ありがとう。
android - リスト アクティビティの問題
ページネーションを実装し、ページごとに 5 つのレコードを表示します。ここで、3 ページ目にいて 3 番目の要素をクリックすると、page-1 の 3 番目の要素が選択されたとします。
データの設定中に常に新しいリストオブジェクトを作成するため、問題を把握できません。
以下のコードを使用しました
以下は SomeListAdapter クラスのシグネチャです。
助けてください....
android - WebView エラーから ImageView のカバーアップ、画面の向きまで
すべては、Android アプリ内のシンプルなWebViewから始まりました。
このビューは、公開 URL から情報を読み込みます。そこには何も珍しいことはありません。
ただし...ネットワークの中断が発生した場合、エラーがWebViewに目立つように表示されてしまう可能性があります。
あれ、もったいないですよね?そこで、これを抑制する方法やトラップする方法をドキュメントや他の場所で検索しましたが、手がかりが見つかりませんでした。#android-dev
そこで、IRCに問い合わせてみました: WebView.onReceivedErrorについては知っていますが、視覚的な部分を抑制できますか? (代わりに、ネットワークの問題に関するダイアログ警告を表示し、再試行するオプションを付けたかったのです。)
回答:できません。:(
結構。プラン B の時間です。おそらく、ImageViewで十分ではないでしょうか?
何らかのWebViewエラーが発生した場合は、ImageViewをその場しのぎのカーテンとして使用できます。最初 (URL が読み込まれる前) にWebViewをオーバーレイし、その後フェードしてその背後にあるWebViewを表示します。WebViewが機能する場合は、すばらしいことです。しかし、onReceivedErrorが発生した場合は、カーテンをすぐに元に戻し、前述のダイアログを表示します。WebView がonPageFinishedを取得すると、カーテンが再びフェードします。
...そしてこれは...素晴らしく機能します!
画面の向きの変更をサポートするように頼まれるまで。(予言: 「物事はここから下り坂になった。」)
これまで、アプリはandroid:screenOrientation="portrait"
マニフェストのメイン アクティビティで使用されていました。そのため、その部分を削除しました。もちろん、悪名高い「アクティビティが再起動されています」という問題に遭遇しました。
もちろん、それ自体は問題ではありません。これは、設計どおりに動作する Android OS です。
また、方向に応じてImageViewが適切に表示されるようにします。ありがたいことに、活用できる代替リソースがあります。その間、リロードしたくないこのWebViewがまだあります。私たちはそれを放っておいて、その時点で縦向きであろうと横向きであろうと、ビューが独自のことをするようにしたいと考えています.
画面の向きを処理するための十分に説明された方法をいくつか見つけました。さらに、著者のMark Murphy の 電子ブックを既に読んでいます(読むことを強くお勧めします)。それでも私は立ち往生していました!ImageViewが混在するようになったので、どのテクニックも請求書を満たしていないようです。
もちろん、ポートレート モードを強制することは問題外です (またはそうでしょうか?)。
android:configChanges="keyboardHidden|orientation"
またonConfigurationChanged
、画面のサイズ変更を独自に適切に処理する WebView を処理しているようです。もちろん、ImageViewもメモを取得せず、元の (ポートレート/ランドスケープ) リソースを使用し続けます!構成変更ハンドラー内での不適切な呼び出し
activity.setRequestedOrientation(newConfig.orientation)
は問題を解決しませんでした。アプリの実行間でWebViewを永続化する必要がないため、別の可能性のように 見え
onRetainNonConfigurationInstance
ました。残念ながら、それもうまくいかなかったようです。最後の非構成インスタンスでリセットwebview
すると(実際に渡したのはそれだけなので)、空白のWebViewが発生しました。私が求めていたものとはまったく異なります。一方、ImageViewは向きの変化にうまく反応しているように見えました。図に行きます。
どう
onSaveInstanceState
ですか?同じ落とし穴。WebViewにはsaveState
メソッドがありますが、遷移をシームレスに保つのに十分な深さで保存していないようです。もしそうなら、おそらくそれも想定されていないので、これも間違った方法かもしれません。
を使用する知恵についてconfigChanges
は、ドキュメントではこの手法を推奨しています。実際には次のとおりです。
アクティビティの標準的な動作は、デバイスの向きが変更されたときに破棄され、再作成されることです。これにより、WebViewが現在のページをリロードします。それが望ましくない場合は、アクティビティ
orientation
を設定して変更を処理し、 WebViewkeyboardHidden
をそのままにしておく ことができます。必要に応じて自動的に向きを変えます。
もちろん、ここで何らかのパイロットエラーを犯している可能性もありますが、それが何であるかはまだわかりません.
私はドキュメントを読んで再読し、自分でこれをハックするあらゆる方法を試しました。おそらく、私はドキュメントに何か(明白な?)が欠けているか、解決策が明白ではない(しかし誰かが光を当てることができる)...またはこれは単に不可能です。後者ではないことを願っています。
手がかりは歓迎/感謝します!
android - 複数のアクティビティ間でAndroidサービスへの接続を維持するにはどうすればよいですか?
私は複数の活動と1つのサービスを持っています。(+ +MainActivity
を実装するクラスを使用して)サービスに正常に接続しましたが、他のアクティビティで同じメソッドを適用しようとすると、LogCatにエラーが表示されます。 ServiceConnection
bindService()
startService()
他の方法でサービスに接続することは可能ですか?オブジェクトを静的にして、2番目のCounterServiceConnection
オブジェクトでMainActivity
使用するようなものですか?
android - 設定アクティビティからアクティビティを起動すると、アクセス許可拒否の例外が発生する
ここで少し問題があります。私がやりたいことは、PreferenceActivity 内からアクティビティを起動することです。したがって、設定レイアウトを保持する私のpreference.xmlは次のようになります。
マニフェストは、起動したいアクティビティを認識しています..
起動しようとすると、セキュリティ例外 ( Permission Denial ) が発生します。何か不足していますか?インテントの理解はまだ少し不完全ですが、そのように機能するはずだと考えました。
助けてくれてありがとう!
android - Androidで新しい画面を開く方法は?
私はAndroidが初めてで、ログインを確認した後にログインページを作成しました
ユーザー認証に基づいて結果を真または偽にします。私の目標は、認証が成功したときに、いくつかの新しいテキストボックスとボタンを使用して別の画面を表示することです。これを達成する方法は新しいレイアウトです。
どんな助けでも感謝します。
android - Android アクティビティの読み込みが完了したことをどのように知ることができますか?
Android アプリの自動テスト スイートに取り組んでおり、アクティビティが完全に読み込まれるのを待っているときに問題が発生しました。getActivity を呼び出すことはできますが、テストで確認したいアクティビティが表示されたからといって、そのアクティビティのコンポーネントを使用する準備ができている (完全に読み込まれている) とは限りません。Activity API を調べても何も見つかりませんでした。また、他の方法は侵襲的すぎるようで、テストの初期状態を台無しにしてしまいました。現在のアクティビティがロードされているかどうかをアプリまたは VM に尋ねる方法があるかどうかは誰にもわかりませんか?
android - Androidアプリケーションのアクティビティ間でデータを渡すにはどうすればよいですか?
ログインページからログインした後、button
それぞれにサインアウトするシナリオがありますactivity
。
をクリックすると、サインインしたユーザーのをサインアウトにsign-out
渡します。誰かが私にすべての人が利用できるsession id
ようにする方法を教えてもらえますか?session id
activities
この場合の代替案
android - AndroidManifest.xml 内からアクティビティをパラメータ化する方法
CustomListActivity
同じデータの 2 つのファセットを公開したいがあります。
例: 車のリストがあり、色のセットとモデルのセットをリストしたいと考えています。これらは my からの mimetype でフィルタリングされますContentProvider
:
org.acme.cars.cursor.dir/colors org.acme.cars.cursor.dir/models
私CustomListActivity
はかなり複雑ですが、再利用するのに十分一般的ですが、次のとおりです。
- ユーザーは、メニュー/ボタン バーから 2 つのリストを切り替えることができる必要があります。
- リストは MAIN LAUNCHER の意図です。
- ユーザーが選択したファセット (モデルまたは色) を記憶する必要があります。
- これらのアクティビティは mimetype で呼び出せるはずです。
だから、私の質問は:
AndroidManifest.xml で 2 つのアクティビティを宣言し、それぞれ同じクラスでパラメータ化することはできますか?それとも、クラス内から何らかのスイッチを使用する必要がありますか?
android - アプリが実行されている場合にアクティビティを強制する方法は?
ウィジェットからアクティビティを開始すると、特別なビューが開始されます。
ただし、アプリが既に実行されている場合 ([戻る] ボタンで終了していない場合)、Android は代わりに最後に表示されたアクティビティをアクティブにします。
この動作を回避するフラグやその他の方法はありますか?
私のアプリでは、前のアクティビティを閉じても問題はありません。失われるユーザー入力はありません。
onStop()のfinish()で回避策を試みたのですが、サブアクティビティ(startActivityForResult)の呼び出し時にonStopも呼び出されるため、そこから戻ると何も返らず、アプリが閉じてしまいます。