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

c# - Server.Transfer 時にアプリケーション ライフサイクル イベントが発生しない

カスタム書き換えモジュールがあり、特定のクエリ文字列パラメーターが渡されたときに、adserve ソフトウェアと追跡のために、response.redirect ではなく server.transfer を呼び出せるようにする必要があります。

RewriteModule の Init イベントで、イベントを登録します。

BeginRequest PreRequestHandlerExecute ReleaseRequestState

Response.Redirect が呼び出されると、ReleaseRequestState イベントが実際に呼び出され、書き換えモジュールが完了し、新しいコントロール URL が設定されます。

Server.Transfer が呼び出されると、ReleaseRequestState イベントは呼び出されず、フレンドリ URL は設定されません。

Response.Redirect と Server.Transfer の違いは理解していると思いますが、イベントが実際に呼び出されない理由がわかりません。または、ここでまったく異なる何かが起こっていますか

ありがとう

ポール

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

android - プロセス管理:殺されるか殺されないか

観察:Androidでアプリを開発しているときに、LogCatで次の2行に気づきました。これらは、自分のアプリのメモリ要件が多すぎるために発生しました。Androidは、不要なプロセスやメモリ要件のためにプロセスをいつ削除するかを決定できることを読みました。

アラームがまったくトリガーされないことを意味しますか(他のアプリが強制終了した場合)?アラームは重要なサービスであり、強制終了しないでください。

(私の理解が間違っている場合は訂正してください。)

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

android - Androidのライブ壁紙が終了しないようですか?

さまざまなライブ壁紙を実行してみました。別のものをライブに設定した場合、「ps」と入力すると、古いものが引き続きadbシェルに表示されます。

私が構築している自分のものもこれを行います...Androidアプリのライフサイクルについて私が理解していないことがありますか?

(私自身のコードでは、サービススレッドが終了しますが、それでもpsで表示されます)。

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

android - シングルトンなどでBroadcastReceiverを使用する最も洗練された方法

アプリケーションのユーザーに関する慎重な情報を格納するシングルトンがあります。現時点では、ユーザーのログインとユーザーの場所が保存されています。

1)場所はサービスを介して検出されます。現在、サービスは私のシングルトンを直接参照して、経度と緯度を詰め込んでいます。代わりに、BroadcastReceiverを使用して、シングルトンが聞いて値を更新するために使用するブロードキャストを送信したいと思います。

ただし、BroadcastReceiverを登録するには、シングルトンにコンテキストが必要です。私が望んでいることを達成するための最も巧妙な方法は何ですか。BroadcastReceiverはおそらく適切なオブジェクトではありませんか?

2)また、シングルトンを使用することでどのような問題が発生しますか?Androidはいつでもこのメモリを再利用する可能性があると思います(これは明らかに悪いことです)。どうすればそれを防ぐことができますか?アプリケーションのコンテキストを渡し、それをメンバー変数に格納することで、これを阻止できますか?

Androidのドキュメントには次のように記載されています。「しかし、静的なライフサイクルは十分に制御できません。したがって、ライフサイクルモデルに従うために、アプリケーションクラスはonCreate()およびonTerminate()でこれらの静的オブジェクトを開始および破棄する必要があります。 )アプリケーションクラスのメソッド」ですが、これを実現する方法が完全にはわかりません。

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

android - Android アクティビティ テストの例では、OnPause の予期が混乱しています

Android サイトの Activity Testing チュートリアルを理解しようとしています。テストの 1 つは、SpinnerActivity の例でスピナーを設定し、強制的に一時停止してから、スピナーをリセットし、強制的に再開し、アプリケーションが状態を適切に復元したことを確認します。参照用に、この質問の下部に関連するコードを貼り付けました。

テストを書いている人が、スピナーが OnPause() と OnResume() の間で破損した可能性があると考えている理由を非常に混乱させています。これは、スピナーが後続のアクティビティで再利用され、その状態が失われた可能性があるためですか? それが私が考えることができる唯一の合理的な説明です。

Strings、ints など、アプリケーションのアクティビティの非ウィジェット メンバーを保持することを懸念しています。これらは OnCreate 中に初期化され、ユーザーによって変更されることはありません。その結果、OS が一時停止後にアクティビティを直接終了した場合でも、OnCreate() がこれらのメンバーを再初期化するため、OnPause 中にそれらを保存する理由はわかりません。

これらのウィジェット以外のメンバーが一時停止しても害を受けないと仮定しても安全でしょうか (アプリケーションが最終的に再開すると仮定しますか?)

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

c# - Windows Phone 7:Application_Activatedイベント中にアクティブ化されるページを確立する

トゥームストーンされたアプリが再アクティブ化されたときに、永続的および永続的でない状態とオブジェクトを復元するという一般的なベストプラクティスの原則に従っています。これは、この非常に優れたMicrosoftの記事に記載されています。

ここ

サンプルは、アプリのメインページの単純な再アクティブ化のみを示しています。ただし、私のアプリケーションには複数のページがあり(いずれもトゥームストーンされて再アクティブ化される可能性があります)、各ページは異なるViewModelオブジェクトにバインドされています。どのページが最終的にアクティブ化されるかを確認して、そのページの正しいViewModelオブジェクトを選択的に逆シリアル化して復元できるようにする方法を知りたいです。

または、すべてのViewModelを復元するためのベストプラクティスですか、それともこのための別のデザインパターンがありますか?

0 投票する
7 に答える
73408 参照

android - Android Application クラスを使用してデータを永続化する

私はかなり複雑な Android アプリケーションに取り組んでおり、そのアプリケーションに関するデータがかなり大量に必要です (合計で約 500 KB です。これはモバイル デバイスとしては大きいのでしょうか?)。私が知る限り、アプリケーション (より正確には、アクティビティ) で向きを変更すると、アクティビティが完全に破壊され、再作成されます。私の調査結果によると、Application クラスには同じライフサイクルはありません (つまり、すべての意図と目的のために、常にインスタンス化されます)。状態情報をアプリケーション クラス内に格納し、Activity から参照することは理にかなっていますか?それとも、モバイル デバイスのメモリの制約により、一般的に「受け入れられる」方法ではありませんか? このトピックに関するアドバイスをいただければ幸いです。ありがとう!

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

java - Android アプリ/アクティビティは、開始または再開するたびに完全に新しく開始しますか?

私は Android 用の子供向けアプリを持っていますが、このアプリには基本的にナビゲーションがないため (幼い子供向けです)、このアプリケーションにはいくつかの固有の考慮事項があります。終了/再起動ボタンを追加して、アプリの UI (iPhone で成功している) を壊したくありません。

私が本当に必要としているのはかなり単純なことです。アクティビティ/アプリを開始するたびに、クリーンで新しいものを開始したいのです。初期ロードであろうと何であろうと - 基本的に onResume が呼び出されるたびに、アプリの完全に新しいインスタンスが必要です。

最初は、ユーザーが離れたときにアプリを終了/終了/終了できると思っていました。しかし、起動時にクラッシュしないようにする方法が見つかりませんでした。また、そのアイデアに関するすべてのスレッド/スタック オーバーフローの投稿は、指を振って、Android でアプリを終了してはいけないと言っている人々でいっぱいです。

アプリ onExit を終了できない場合、onResume が呼び出されるたびにアクティビティを再開するためにできることはありますか? (または、それは無限ループになりますか?)。

どんな助けでも大歓迎です!

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

erlang - .NET から Erlang へのアプリの移植を検討中 - アドバイスが必要

私は、分散型のソフトリアルタイムでホストされる Web ベースのテレフォニー アプリの将来のバージョンとして、Erlang を検討しています (つまり、Erlang は、この種のアプリに最適な選択肢のように見えます)。私は .NET のバックグラウンドを持っており、このアプリの現在のバージョンでは、C#、WCF、および JQuery を組み合わせてサービスを提供しています。私は今、Erlang を必要としており、稼働時間をさらに 9 倍に増やし、サーバーの費用をより多く回収できるようにしています。

以前は、VS.NET、GIT、TeamCity、および維持しているさまざまな環境への MSI ファイルの自動デプロイを組み合わせて、ここで開発プロセスをセットアップしていました。完璧ではありませんが、私たちは皆、これでかなり快適になりました。私たちのようなプロセスが、このような根本的に異なるテクノロジー スタック (LYME) に適しているかどうか疑問に思っています。

以前に .NET を使用して解決したプログラミングの課題はすべて、Erlang を使用するとより少ないコードで解決できると確信しているため、言語の選択に完全に納得しています。Pragmatic や O'Reilly の Erlang に関する本を読んでもまだ理解できないのは、ソフトウェア エンジニアリングとアプリケーション ライフサイクル管理 (ALM) プロセスを新しいプラットフォームに適合させるにはどうすればよいかということです。コードのインプレース更新により、私 (および私のテスト チームと運用チーム) の生活が大幅に楽になることがわかります (Windows ネットワークを介して MSI ファイルを展開しようとする悲惨な状況と比較して)。 Erlangを使用するとき。

どのようにしますか:

  • Erlang で継続的インテグレーションを行います (一般的に使用されていますか?)
  • QA サイクル中に使用します (GIT を使用して同時トピック ブランチを実行することが多く、独自のミニ QA サイクルを取得するため、すべてテスト環境にデプロイされます)
  • コードをビルドして DEV、TEST、UAT、STAGING、および PROD 環境に配布する
  • コード生成フェーズをビルド サイクルに統合します (現在、MSBUILD + T4 テンプレートを使用しています)。
  • 多数の異なるサーバーのログを集中化します (現在、Log4Net、MSMQ などを使用しています)
  • SCOM などのツールでアラートを行う
  • 誰か/何かが本番サーバーを誤って構成していないかどうかを判断する
  • 適切な QA の後にのみ本番用のホットフィックスを許可する (許可された担当者のみ)
  • アプリのパフォーマンス (計算と通信) のプロファイリング
  • Windows ベースの Active Directory サーバーと対話する

私はあなたのために何がうまくいったのか、そしてその理由を知る必要があると思います! どのようなツールとフレームワークを使用しましたか? 何を試して失敗しましたか?今知っていることを知って、最初からやり直すことができるとしたら、何を変えますか?

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

android - アクティビティがフォーカスを取得したときに呼び出されるメソッドはどれですか? (電話の後、バックキー、ホームキーなど…)

アプリに問題があります。たくさんのアクティビティがあります。そのうちの 2 つは Google マップ ビューを備えています。私の A アクティビティには完全な MapView があり、私の B アクティビティには小さな MapView があります。わかりました。B アクティビティで、A アクティビティに戻るまで時々戻るキーを押すと、A アクティビティのマップにエラーが表示され、画面の下部に黒いゾーンが表示されます。これは、B アクティビティから押し戻したときにのみ発生します。

このため、フォーカスを取得したときに A でどのメソッドが呼び出されるかを知る必要があります。これは、すべてのウィンドウを最初から再描画するために実装/オーバーライドする必要があるためです。

また、すべてのウィンドウを最初から再描画するには、どのコードを配置する必要がありますか?