問題タブ [activity-finish]
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.
java - 成功ハンドラの最初の finish() は正常に動作し、2 番目の finish() は動作しません
過去6時間、次の問題に頭を悩ませようとしてきましたが、理解できません。簡単に修正できる問題だと思いますが、どういうわけかそうではありません。
いくつかの完了ハンドラーを持つAsync HTTP ライブラリを使用します。そのうちの 1 つはonSuccess()
. 私の成功ハンドラーのコードは次のようになります。
関連するコードは終わりに近いと思います。
I に値がない場合は、update
を呼び出してアクティビティを閉じfinish()
ます。これは常に正常に機能します。
の値がupdate
存在する場合、更新識別子が最後に保存された値ではないかどうかを確認します。更新識別子が実際に新しい場合は、ダイアログを表示します。更新識別子が新しくない場合は、呼び出してアクティビティを閉じfinish()
、アプリを続行しようとします。この 2 番目finish()
の呼び出しは機能しません。
私のエミュレータは、この 2 回目のfinish()
呼び出しで小さな問題が発生しているように見えますが、LogCat はエラーや警告などについて言及していません。
finish()
2 番目にアクティビティが閉じられないのはなぜですか?
android - finish() は 1 つではなく 2 つのアクティビティを閉じています
次のことを行うアプリを作成しました。
アクティビティ A --> アクティビティ B --> アクティビティ C
アクティビティ A --> アクティビティ B2 --> アクティビティ C
B、B2、または C を閉じると、前のアクティビティに移動します。A を閉じると、アプリを終了します。
B から C に到着した場合、C は 1 つの方法で機能しますが、B2 から到着した場合、C は少し異なる方法で機能します。
これは、エミュレーターと私が確認できたすべてのデバイスで完全に機能しますが、android 4.0.4 を搭載した 2 つの Xperia (モデル ARC と U) で問題が発生しました。
B から C に到達すると問題が発生します。C を閉じると、B ではなく A に戻ります。B2 から C に到達すると、閉じると B2 に戻ります。
私はそれを理解できません。どちらの場合も、C は同じように動作しなければならなかったと思われます。
もう 1 つの質問は、この 2 つ以外のすべてのデバイスでアプリが完全に機能することはどのように可能でしょうか?
何か案が?どうすればこの問題を解決できますか?
コードを追加するための編集:
B から C を開く:
B2 から C を開く:
どちらの場合も、グリッドビューから最終的なアクティビティを開いています。すべての最終的なアクティビティは同じように機能します。
ありがとうございました。
java - ボタンを使用してアプリケーションを終了する方法
私のメインメニューに4つのボタンがあるアプリケーションを開発しています.問題は私のボタン(終了ボタン)の1つです) と system.exit(0) ですが、うまくいきません..助けていただければ幸いです!
android - ActivityGroupのアクティビティ間を移動中のStackOverflowError
タブ付きのアプリケーションを作成しています。そのアプリでは、同じTabView
ことが階層内の複数のアクティビティに表示されます。そのために私は使用しActivityGroup
ました。
私のアプリケーションでは、タブを含む最初のアクティビティからその子アクティビティに移動でき、子アクティビティのボタンを押すことで前のアクティビティに戻ることができます。これらの2つのアクティビティ間を移動しているときに、数回操作した後にStackOverflowErrorが発生します。旗を立ててみました
しかし、それは役に立ちません。私も試しました
しかし、それは全体を終了しますActivityGroup
。それから私は方法を試しました
しかし、それでも同じエラーが発生します。
これは、タブを含む最初のアクティビティからその子に移動するための私のコードです-
そして、ボタンをクリックして親のアクティビティに戻るために使用しているのと同じコード-
今、私はこの問題に対して何をすべきか分かりません。どんな助けでも大歓迎です。前もって感謝します。
android - ハンドラは onActivityResult にデータを送り返しません
今、私は2つの機能を試しました。最初の機能(以下)は機能し、このアクティビティを開始するアクティビティでデータを取得します:
次に、数秒で Facebook からデータを取得し、インテントを呼び出すハンドラーに送信します。これにより、常にアプリケーションが閉じられます。結果を待っているアクティビティの onDestroy メソッドが閉じられ、その理由がわかりません。
今 logcat はこれを言います (私は電子メール、名前、名、パスワードを変更しました):
logcat の最後の 4 行が何なのかわかりません。I/Launcher のものは私のコードではありません。そして最後の行は、このアクティビティを呼び出すアクティビティの ondestroy メソッドです。StartActivityForResult
これは、少なくともOnActivityResult
関数に入る前に閉じるべきではありません。
android - 同時の向きの変更後に再作成された完成したアクティビティ
finish()を呼び出すとアクティビティの再作成が停止すると思われるため、この動作が正常かどうかはわかりません。
アクティビティクラスの抜粋は次のとおりです。
アクティビティは永続的であり(他の永続変数もRetainFragmentに保存しますが、表示しませんでした)、ユーザーが終了ボタンをクリックした後にのみ閉じられます。この時点でonFinishClicked(View)が呼び出され、アクティビティが呼び出されます。システムによって終了する必要があります。画面を同時に回転させた後、システムによって再作成されるとは思いません。これはめったに発生しないので、onCreate()メソッド内でfinish()を再度呼び出すことで処理します。ただし、ここでは、終了したアクティビティが永久に停止することになっているため、かなり醜いように見えます。これを明示的に処理する必要があります。:(アクティビティのライフサイクルまたは私の側の保持フラグメントの誤解はありますか?
android - 親アクティビティから子アクティビティを閉じるAndroid
親の活動から子の活動を閉じたかったのです。私のフローは次のようになります。アクティビティAが開かれ、アクティビティAI内でアクティビティBが開かれます。しかし同時に、アクティビティAがバックグラウンドタスクを実行しています。バックグラウンドタスクの結果を取得したときに、アクティビティAからアクティビティBを閉じたいと思いました。
それは可能ですか?
android - 別のアクティビティの終了を使用してアクティビティを前面に出す方法
A と B の 2 つのアクティビティがあります。
A から B へ:
onCreate
オンクリック
B から A へ: (B に A に戻るボタンがある場合)
しかし、フローが次のような場合:
A が B を呼び出し、B を監視しているユーザーが [ホーム] ボタンをクリックして、起動したアクティビティから B をもう一度クリックし、ボタンをクリックして Finish() を呼び出すと、最初のアクティビティ A ではなく [ホーム] に移動します。
編集:
フロー
- A->B // startActivity(Intent) を使用;
- B->Home // デバイスのホームボタンをクリック
- ホーム->B // 起動されたアクティビティからアプリをクリック
- B.finish() -> Home であり、A ではありません // finish または onBackPressed は同じことを行います
android - 別のアクティビティからアクティビティを終了する
A、B、C の 3 つのアクティビティがあります。A は B につながり、C につながります。A と B の間を行き来できるようにしたいのですが、C が始まったら A と B の両方を終了したいと考えています。インテント経由で C を開始するときに B を閉じる方法は理解していますが、C の開始時に A も閉じるにはどうすればよいですか?
java - Android スヌーズと完了
こんにちは、Android の開発を検討し始めていますが、スヌーズ機能に関する適切なチュートリアルが見つかりませんでした。ここに私の質問があります:
スヌーズを実装したいシンプルな目覚まし時計があります。AlarmActivity に AlarmAlertActivity を開始するインテントを渡します。ただし、スヌーズ ボタンが押されたときに、AlarmAlertActivity で終了を呼び出したいと考えています。タイマーを使用して AlarmAlertActivity にスヌーズ メソッドを記述しました。ただし、AlarmAlertActivity クラスが終了すると、タイマーは実行されなくなります。複数のスヌーズが発生する可能性があるため、AlarmActivity に戻るために別のインテントを実行したくありません。どんな助けでも大歓迎です!