問題タブ [activity-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.

0 投票する
5 に答える
32705 参照

android - finish() とアクティビティのライフサイクル

クラスで Android プログラミングを学んでいますが、finish() がアクティビティのライフサイクルにどのように適合するかについて簡単な質問があります。

finish() を呼び出すと、どのライフサイクル コールバックが開始されますか? onPause()、onStop()、onDestroy() だと思います。これは正しいです?

本当に、onDestroy() に直接ジャンプしないようにしたいだけです。

0 投票する
1 に答える
404 参照

android - Android : スリープ後にゲームを再開する必要があります

電話がスリープ状態になる前 (ユーザーが電源ボタンを押す) からゲームを続行できるようにしたい。私のゲームはホームボタンで問題なく動作します。ユーザーがホームボタンを押してゲームを再度開くと、あるべき場所でゲームが開始されます。ただし、ユーザーが電源ボタンを押すと(Google htc nexus oneで)、クラッシュします。しかし、samsung Galaxy Tablet 10 でゲームをテストすると、問題なく動作します。

ではLogCat、ユーザーが Galaxy タブレットの電源ボタンを押すと、onPause()が呼び出されることがわかりました。ユーザーがもう一度押すとonResume()が呼び出されますが、これは正常です。

しかし、Google nexus では、ユーザーが電源ボタンを押すと、スリープ状態になる前にonPause()、onResume()、onPause()がそれぞれ呼び出されます。ユーザーが電源ボタンをもう一度押しても、何も呼び出されません。

どうすれば問題を解決できるかアドバイスをお願いします。前もって感謝します

編集

この問題は、デフォルトで縦向きのデバイスでのみ観察されるようです。

0 投票する
1 に答える
1905 参照

android - Android ActivityGroupのライフサイクルは廃止されましたか?

super.onPause()そのため、数日から、アプリケーション全体でsuper.onDestroy()、、などに関する警告super.onResume() が非推奨になりました。質問したいのは、将来、これらのメソッドが以前のように呼び出されなくなることを意味するかどうかです。これは、これらのメソッドで使用または初期化する特定のものを制御および呼び出すための新しい方法です。フラグメント?

0 投票する
1 に答える
1604 参照

android - 強制終了されたアクティビティの onActivityResult

私の問題の良い解決策を教えてください。

私はActivity1、Activity2を持っています。Activity1 で UI を作成しonCreate()、ある時点でユーザーが Activity2 を開始しますstartActivityForResult()

メモリ不足というのは非常に珍しいケースのようですが、一度遭遇したことがあるので、今後は防ぎたいと思います。「難しい」アプリやゲームを実行することで、この状況を繰り返すことさえできます。結果は - アプリに戻ると、Activity2 が再作成されます。そして、戻るボタンを押してActivity1に戻ると、それも再作成されます。そして、ここに論理的な衝突があります。Activity1 の UI は 0 から作成さonCreateれ、同時に更新されonActivityResultます。

どうすればこれを解決できますか? いくつかのフラグをトリガーしonCreateてチェックインしonActivityResultますか? これは私にとってはうまくいきますが、あるべき姿ではないと思います。

私の電話には Stock ROM、Android 2.3.5 が搭載されています

更新:わかりました、特定の質問、私は要素のリストを持っています。に組み込まれていonCreate()ます。Activity2 を離れると、後で更新するために、クリックされた要素の ID を覚えておく必要がありますonActivityResult()。バンドルに保存しても問題ありませんonSaveInstanceState()。しかし!onCreate()更新するものが何もないので、バンドルから入手するのは悪い考えです! ここで明確にするために、疑似コードを示します。

アクティビティが実際にシステムによって破棄されたため、id で要素を更新することはできません。そして、私はそれを再構築する必要があります。そして、私は に連続して電話をかけていonCreate(), onActivityResult()ます。問題は、これら 2 つのメソッド間でロジックを共有して、要素リストを正しい順序で作成/更新する方法です。

0 投票する
1 に答える
54 参照

android - 他のアプリケーションでの他のアクティビティのライフサイクル ステータスの読み取り

異常な動作を検出するアプリケーションを開発しようとしています。したがって、できるはずのことの 1 つは、他のアプリのライフサイクル ステータスを読み取ることです。Google Play が一時停止しました。

これは可能ですか?

0 投票する
2 に答える
3865 参照

android - onStart の前に呼び出される onStop

AlarmManager から呼び出されるアクティビティがあります。警報メッセージです。

アクティビティが Key Guard から呼び出されると、ライフサイクルは onCreate -> onStart -> onResume -> onPause -> onStop から onCreate -> onStart -> onResume に戻ります。

アラームアクティビティなので、アクティビティの onStop 内に MediaPlayer.stop の行を入れたのですが、開始直後にアラーム音が止まるようになりました。

MediaPlayer.stop を onDestroy 内に配置すると、正しい動作が得られますが、ユーザーがホーム ボタンを押すと、アクティビティが消えてサウンドが再生され続けます。

この状況で onPause と onStop が呼び出される理由は誰でもわかりますか?

編集:ログを調査したところ、次の行が見つかりました。

0 投票する
2 に答える
1940 参照

android - 私のコードは MediaPlayer の漏洩を防ぐのに十分ですか?

私のアクティビティには次のものがあります。

このコードは十分ですか、それとも MediaPlayer の漏洩につながりますか? onStopとの実装は必要ですか、それとも の呼び出しにonStart頼ることができますか?releaseonCompletion

onStop()MediaPlayer の再生中に呼び出される可能性があるため、この方法でコードを作成しました。まだ呼び出されないreleaseため、呼び出す必要があります。onCompletionあくまでも推測なので間違っていたらごめんなさい。

onStopまた、メモリ不足の状況では呼び出されないことも読みました-その後どうすればよいですか?

0 投票する
1 に答える
1155 参照

android - アクティビティは、Androidの他のアクティビティから戻ってきたときに、サーバーからデータ全体を再度リロードします

基本的に、私は4つのタブを含むタブアクティビティを持つアプリに取り組んでいます。また、actvityGroupを使用してアクティビティとbackKeypressed()メソッドを管理しています。

私のアプリが最初に起動すると、サーバーにリクエストが送信され、下の画像に示すように進行状況バーが表示されます(AsyncTaskを使用)。

ここに画像の説明を入力してください

この後、私の完全なUIは次のように表示されます

ここに画像の説明を入力してください

ボタン「GO」のクリックイベントで新しいアクティビティをロードします(コードは以下に示されています)

これが私のActivtyGroup.javaコードです

さて、私の質問は、backKey()を押したときです。それは前の活動に来るべきです。

  • はい、前のアクティビティになりますが、サーバーにリクエストを再度送信し、進行状況バーを再度表示して、サーバーが応答を送信するまでロードします。それは私の時間を無駄にします。
  • HomeTabを一度だけロードしたい(アプリをプレイするとき)。何度も何度も
  • 私も追加しています

    setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

活動開始中

  • また、menifest.xmlファイルに次のコードを追加しました

    android:configChanges = "keyboard | headerboardHidden | orientation"

しかし、まだ機能していません。

これが私のホームタブのコードです(onCreateメソッドでサーバーにリクエストを送信します)

  • 私の活動グループのクラスを見て、私が何をすべきか教えてください。前もって感謝します
0 投票する
5 に答える
3863 参照

java - ANDROID onBackPressed がアクティビティで機能しない

インターネット接続をチェックするアクティビティに onBackPressed を実装しましたが、タブレットの [戻る] ボタンをクリックしても何もしません。私はそれの原因が何であるかを理解していません。助けられる?

以下は私のコードです

0 投票する
3 に答える
962 参照

android - 起動時に問題を引き起こす onResume

ユーザーが 2 番目のアクティビティを開始できるアクティビティがあります。2 番目のアクティビティには、配列リストに追加するアイテムのリストがあります。前のアクティビティに戻ったら、配列リストのサイズを表示したいと思います。

ただし、onResume() に問題があります。最初のアクティビティが作成されたときに呼び出され、最初に起動したときに配列リストが存在しないため、結果としてエラーが発生します!

onResume():

getIntentData():

2 番目のアクティビティの onCreate():

どうすればこれを制御できるのでしょうか?

エラー:

java.lang.RuntimeException: アクティビティを再開できません {com.example.waitronproto3/com.example.waitronproto3.SectionsActivity}: java.lang.NullPointerException