問題タブ [android-lifecycle]
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 - アクティビティのライフサイクルに関する質問: onNewIntent / onSaveInstanceState
ActivityFolder というアクティビティを呼び出す ActivityLanding があります。putExtra("folderId", "...") を使用した意図で (folderId が最良の例ではないことはわかっています)
それを変数に保存して問題なく使用できますが、メモリを節約するために最終的にアクティビティが強制終了された場合、folderId が失われる可能性があります。私のアクティビティが再び開始されると、インテントからの「エクストラ」は保持されますか? 以下のコードはうまくいきますか?
保存された場合、 ASyncTaskを使用して変更しても問題なく動作しますか?
android - onSaveInstanceStateを使用してAndroidアプリでスレッドと接続状態を維持しますか?
私はAndroid用のマルチプレイヤーゲームアプリを開発しています。参加者の1人がホスト(ゲームインスタンスを作成した人)として機能し、他の各参加者はBluetoothを使用してホストに接続しています。
私の質問は次のとおりです。このホストでは、通信するためにいくつかのスレッドが実行されており、開いているすべての接続を保持しています。アクティビティを一時的に破棄して後で復元できることを読みました。そのためにonSaveInstanceStateメカニズムを使用する必要があります。しかし、私はゲームの「サーバー」として機能し、他のクライアントにサービスを提供するオープンな接続とスレッドを備えたアプリについて話しています。OSが私のアクティビティを破棄することを決定した場合、これらの接続とスレッドはどうなりますか?彼らは終了しましたか?もしそうなら、これを適切に実装するために推奨されるパターンは何でしょうか?onSaveInstanceStateバンドルで接続を維持するにはどうすればよいですか?シリアル化できません。同じことがスレッドにも当てはまります、破棄時およびアクティビティが復元されたときに、それらを再作成して破棄する必要がありますか?このすべての状態を、ゲームの状態を表す静的クラスに保持するとどうなりますか?そうすると、OSは私のスレッド/接続を破壊しませんか?
SDKに付属しているサンプルのBluetoothチャットを確認しましたが、onSaveInstanceStateを処理できないため、どうすればよいかが非常に不明確です。
ありがとうございました!
android - ボタンのクリックで新しいアクティビティを開始する方法
Android アプリケーションでは、別のアクティビティのボタンがクリックされたときに新しいアクティビティ (GUI) を開始する方法と、これら 2 つのアクティビティ間でデータを渡す方法を教えてください。
android - onActivityResult() の前に onResume() が呼び出されますか?
私のアプリのレイアウトは次のとおりです。
- onResume() ユーザーはログインを求められます
- ユーザーがログインした場合、彼はアプリを引き続き使用でき ます 3. ユーザーがいつでもログアウトした場合、再度ログインを促したい
どうすればこれを達成できますか?
これが私のMainActivityです:
これが私のLoginActivityです:
ユーザーが正常にログインした後:
問題は、 onResume() が onActivityResult() の前に呼び出されるため、ユーザーが正常にログインしたときに、 onResume() が最初に呼び出されるため、メインのアクティビティに通知されないことです。
ログインを促すのに最適な場所はどこですか?
android - ビューを最初に測定できるのはいつですか?
そのため、ビューの表示時に描画可能な背景を設定しようとすると、少し混乱します。コードはビューの高さを知ることに依存しているので、またはから呼び出すことはできません。0onCreate()
を返すからです。しかし、私が得ることができる最も近いようです。ユーザーに表示したときに背景が変わるように、次のようなコードをどこに配置すればよいですか?onResume()
getHeight()
onResume()
android - ローカル/リモートサービス、ブロードキャストレシーバー、およびインテントサービスに関する構造の質問
私は標準的なアクティビティを持つAndroidアプリを書いていますが、着信/発信の通話とテキストを常に監視する必要があります。さらに、アプリはアクティビティを開かずに1日1回ユーザーに情報を通知する必要があります。ユーザーに通知する情報はデータベースに保存されるため、アクティビティとの通信は必要ありません。私は1週間研究を続けてきましたが、それでもこれをどのように行うかを決めることができません。私の本能は、常に放送受信機を実行しているリモートサービスが必要だと言っていますが、私が見るすべてのリモートサービスの例は非常に複雑です。誰かが私が取る必要があるステップをよりよく理解するのを手伝ってもらえますか?前もって感謝します。
android - Activity.finish() が呼び出されましたが、アクティビティはメモリにロードされたままです
デバッガーでアプリを実行すると、メイン スレッドと 3 つのバインダー スレッドが取得されます。
ボタンをクリックするとActivity.finish()が呼び出され、UI が閉じてホーム画面に戻るとアクティビティが終了するように見えます。
ただし、デバッガーでは、まだメイン スレッドと 3 つのバインダー スレッドが " (running) " として表示されます。
なぜこれが起こっているのか、私は困惑しています。さらに、アプリを終了した後に再度実行すると、アプリがActivity.onResume()を呼び出す原因となっています。
現在、アクティビティでこれらのメソッドをオーバーライドしていますが、それぞれで適切なスーパー関数を呼び出しています。
- onDestroy()
- onPause()
- onResume()
- onSaveInstanceState()
これに関するヘルプやアドバイスは大歓迎です!
android - Android DroidCharts SaveInstanceState の問題?
JFreeChart ( http://www.jfree.org/jfreechart/ ) をグラフ作成ライブラリとして使用しています。しかし、Android の場合、基本的に Android 用の JFreechart である DroidCharts ( http://code.google.com/p/droidcharts/ ) を使用します。Androidでチャートを作成しました。最初は明らかですが、プロットにいくつかの値を追加すると、チャートにプロットされます。
Android の向きを縦向きから横向きに回転すると、Android のライフサイクルが原因で画面が再び空白になります (破棄が続き、onCreate がもう一度呼び出されます)。
向きが変更されたときに、「onSaveInstanceState」を使用してプロット ポイントを保存し、「onRestoreInstanceState」でもう一度作成する方法を知る必要があります。? どんなコード スニペットも役に立ちます。ありがとう
android - 破棄-作成サイクルの間にタブホストタブを保存する方法
アプリケーションには、TabActivityを介して管理されるタブホストがあります。実行時にタブを追加するオプションがあります。
実行時に5つのタブが追加され、さまざまなアクティビティが表示されるとします。
画面を回転させると、アクティビティは破棄と作成のサイクルを経ます。このサイクル中に使用できるように、実行時にユーザーが追加したタブを維持したいと思います。
android - ArrayList を失う Android サービス
編集:ここに PasteBin のソースがあります。サービス全体を再設計する必要があるかもしれない.. :(
私はRingPackの開発者です。基本的な考え方は、バックグラウンドで起動されたサービスがあり、ユーザーの着信音を切り替えることです。サービス内の ArrayList への参照が失われるという問題があります。ライフサイクルの仕組みを誤解している可能性があると思います。私の意図は、ユーザーがアクティビティからパックを選択するたびに開始されることでした。
Intent i = new Intent(RingActivity.this, RingService.class);
i.putExtra(RingService.ACTION, RingService.PACK_SET);
i.putExtra(RingService.PASSED_PACK, currentPackId);
RingActivity.this.startService(i);
デフォルトの通知音を「currentPackId」に対応するパックの最初の音に設定するようサービスに指示します。
ユーザーが RingPack をオフにしたい場合、無効化は次のように行われます。
Intent i = new Intent(RingActivity.this, RingService.class);
RingActivity.this.stopService(i);
Toast.makeText(RingActivity.this.getBaseContext(), RingActivity.this.getString(R.string.ringPackDisabled), Toast.LENGTH_SHORT).show();
したがって、サービスの onCreate は次のようになります。
次に、それを onStartCommand に渡します。onStartCommand は START_NOT_STICKY を返し (サービスを手動で作成および破棄するため)、handleStart() に渡します。
isSdOk() メソッドは、着信音が SD カードに保存されているため、SD カードがマウントされているかどうかを確認するだけです。initControl() は、ユーザーのデフォルトの着信音を保存するだけなので、無効になったときに元に戻すことができます。setPack() メソッドは次のようになります。
トーン ArrayList は、私が失ってきたものです。ここで初期化します。パック内のすべての有効な着信音の ID を保持します。私が見ている NullPointerException は swapTone() にあります。
setPack() がまだ呼び出されていない場合、swapTone() が呼び出されることはありません。繰り返しますが、私のユーザーはこのエラーを受け取り続けていますが、自分で再現することはできません。どんな助けでも大歓迎です。コードウォールで申し訳ありませんが、非常に混乱しています。おそらく、サービスの概念を正しく使用していないのでしょうか?