問題タブ [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 投票する
4 に答える
13413 参照

java - プログラムのメインループを含む C/C++ の「int main」に類似した Android の関数はありますか?

通常、C または C++ プログラムには、通常、メイン ループ/関数がありますint main ()。Android Java開発で使用できる同様の機能はありますか?

0 投票する
15 に答える
227197 参照

android - 履歴スタックからのアクティビティの削除

私のアプリは、ユーザーがアプリを初めて実行したときにサインアップ アクティビティを次のように表示します。

  1. ActivitySplashScreen (ゲームへようこそ、アカウントにサインアップしますか?)
  2. ActivitySplashScreenSignUp (この情報を入力してください)
  3. ActivityGameMain (ゲームのメイン画面)

そのため、ユーザーが各画面のボタンをクリックすると、アクティビティは正確にその順序で互いに起動します。

ユーザーがアクティビティ #2 から #3 に移動するとき、履歴スタックから #1 と #2 を完全に消去することは可能ですか? ユーザーが 3 番の状態で [戻る] ボタンを押した場合に、スプラッシュ画面に戻るのではなく、ホーム画面に戻るようにしたいと思います。

タスクでこれを達成できると思います(つまり、#3で新しいタスクを開始します)が、より簡単な方法があるかどうかを確認したかったのですが、

ありがとう

0 投票する
8 に答える
14400 参照

android - メモリを節約するために殺害活動をシミュレートする方法は?

Androidのドキュメントは次のように述べています:

「ユーザーではなくシステムがメモリを節約するためにアクティビティをシャットダウンすると、...」

しかし、この状況をシミュレートする方法は?メソッドをデバッグしたいのですが、onRestoreInstanceState(Bundle)方法がわかりません。

0 投票する
18 に答える
124390 参照

android - ログアウト時にアクティビティ履歴スタックをクリアし、「戻る」ボタンでログインのみのアクティビティが開かないようにします

アプリケーションのすべてのアクティビティを表示するには、ユーザーがログインする必要があります。ユーザーは、ほぼすべてのアクティビティからログアウトできます。これはアプリケーションの要件です。ユーザーがログアウトした場合はいつでも、ユーザーを Login に送信したいと考えていますActivity。この時点で、このアクティビティを履歴スタックの一番下に配置して、「戻る」ボタンを押すとユーザーが Android のホーム画面に戻るようにします。

この質問がいくつかの異なる場所に尋ねられたのを見てきましたが、すべて同様の回答が返されました (ここで概説します) が、フィードバックを収集するためにここに提示したいと思います。

Intentドキュメントに記載されているようにフラグを設定して Login アクティビティを開こうとしましたFLAG_ACTIVITY_CLEAR_TOPが、Login アクティビティを履歴スタックの一番下に配置し、ユーザーが戻るのを防ぐという目標を達成できませんでした以前に見たログイン アクティビティに。マニフェストの Login アクティビティにも使用android:launchMode="singleTop"してみましたが、これも私の目標を達成していません (とにかく効果がないようです)。

履歴スタックをクリアするか、以前に開いたアクティビティをすべて終了する必要があると思います。

1 つのオプションは、各アクティビティのonCreateログイン状態をチェックし、ログインしfinish()ていない場合はチェックすることです。このオプションは好きではありません。戻るボタンは引き続き使用でき、アクティビティが閉じると元に戻るからです。

次のオプションは、どこからでも静的にアクセスできるすべての開いているアクティビティへの参照を維持するLinkedListことです (おそらく弱参照を使用します)。ログアウトすると、このリストにアクセスして、以前に開いたすべてのアクティビティを反復処理し、finish()それぞれを呼び出します。私はおそらくすぐにこの方法を実装し始めるでしょう。

Intentただし、これを達成するには、フラグの策略を使用したいと思います。上で概説した 2 つの方法のいずれかを使用しなくても、アプリケーションの要件を満たすことができれば幸いです。

Intentまたはマニフェスト設定を使用してこれを達成する方法はありますか、または私の2番目のオプションはLinkedList、開いているアクティビティを維持するのが最良のオプションですか? または、私が完全に見落としている別のオプションはありますか?

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

android - 向きが変わったときにアクティビティを処理するには?

サーバーからデータをロードし、ArrayAdapter を使用してリストとして表示するアクティビティを作成しています。そのために、サーバーからすべてのデータをロードしている間、進行状況ダイアログ、つまりロードを表示しています。次に、ハンドラーでダイアログを閉じます。私の問題は、方向を変更するたびに進行状況ダイアログが再度表示されることです。これは、すべてのデータが既に表示されているため、必要ありません。

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

android - 停止時にListViewカーソルをnullに変更するのはなぜですか?

私はCursorAdapterの実装例を見て、すべてが正しく行われていることを確認してきました。

私が行っていないことに気付いたのは、ActivityのonStop()ハンドラーのCursorAdapterでchangeCursor(null)を呼び出すことです。

これの目的は何ですか?正当な理由がある場合はそれを実行するつもりですが、別のアクティビティに移動してこのアクティビティにバックアップし、新しいカーソルが照会されるまで1秒間空白の画面が表示されるのは嫌です。

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

android - Androidで方向を変更して動的ビューを集中させるにはどうすればよいですか?

上に EditText があり、その中に LinearLayout がある ScrollView があるアクティビティがあります。

LinearLayout は、開始インテントで渡されたオブジェクトに基づく一連の動的ビューを使用して、onCreate メソッドに取り込まれます。これは通常、EditText のセットです。

結果は、それぞれが異なるデータに対応する EditTexts のリストです (編集されるデータセットは非常に可変であるため、リストはこのように動的に作成する必要があります)。

問題は、これらのビューの 1 つにフォーカスがあり、向きが変わると (たとえば、ユーザーがキーボードをひっくり返して入力すると)、フォーカスがアクティビティの最上部にある EditText にスナップすることです。ユーザーがキーボードを離したときに一番上の EditText を入力するつもりはなかったので、これは明らかに望ましくない動作です。

このようなビューのリストを動的に作成し、この望ましくないフォーカス変更動作を行わないようにするにはどうすればよいですか?

0 投票する
4 に答える
51698 参照

android - onActivityResult() の前に onResume() が呼び出されますか?

私のアプリのレイアウトは次のとおりです。

  1. onResume() ユーザーはログインを求められます
  2. ユーザーがログインした場合、彼はアプリを引き続き使用でき ます 3. ユーザーがいつでもログアウトした場合、再度ログインを促したい

どうすればこれを達成できますか?

これが私のMainActivityです:

これが私のLoginActivityです:

ユーザーが正常にログインした後:

問題は、 onResume() が onActivityResult() の前に呼び出されるため、ユーザーが正常にログインしたときに、 onResume() が最初に呼び出されるため、メインのアクティビティに通知されないことです。

ログインを促すのに最適な場所はどこですか?

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

android - システムによってアクティビティが強制終了される方法の概要

ランタイムによってアクティビティがいつどのように強制終了されるかについて、誰かが簡単な概要を説明できますか?一時停止状態と停止状態の違いを知りたいのですが。一時停止したアクティビティをシステムに強制的に破棄させるには、停止した場合とまったく同じ(メモリ不足)理由がありますか?

電話の着信(突然メモリ不足の状況が発生する)のためにアクティビティが一時停止された場合、システムは停止されたアクティビティのリソースを解放することを単に好むと思います。しかし、それはどのように行われますか?システムがfinish()を呼び出してアクティビティを「親切に尋ねる」のはいつですか、そうでないのはいつですか。また、onDestroy()はいつ呼び出されますか?

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

android - サブアクティビティのライフサイクル

startActivityForResult()によってアクティビティが別のアクティビティを開始した場合、親が終了すると、そのサブアクティビティはどうなりますか?