問題タブ [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.
tfs - アプリケーションライフサイクル管理にTFSを使用した経験を共有したい人は誰でも
私たちはクライアントのためにホワイトラベルのウェブとモバイルヘルスケアアプリケーションを開発しています。当社の製品は急速に進化しており、既存のクライアントをサポートし、新しいクライアントをサポートする予定です。
現在の開発ワークフローには、ソースコード用のSVN、要件ドキュメントの追跡、および欠陥追跡用のカマキリが含まれます。
組織では、VSTFS2010ベースのアプリケーションライフサイクル管理を検討しています。VSTFS2010が以下の合理化に役立つことを願っています
1)要件管理2)ソースコードバージョン管理3)ビルド自動化4)テスト管理
VS TFS 2010の使用経験があり、その経験を共有したい人はいますか?VS TeamSystemに代わる価値のあるものはありますか?
c# - Application_End およびバックグラウンド プロセス、ASP.Net アプリケーションの正常な終了
ThreadPool.QueueUserWorkItem() を使用して一部のバックグラウンド ワーカーを起動する ASP.Net アプリケーションがあります。ほとんどの場合、実行中のバックグラウンド スレッドはゼロですが、一度に最大 5 ~ 6 個のスレッドが実行される場合もあります。さらに、ほとんどは数秒以内に完了しますが、10 分も実行される可能性があります。
ASP.Net アプリケーションのシャットダウンを引き起こす可能性のあるさまざまなシナリオをすべて考えると、アプリケーションをシャットダウンする必要があり、処理の途中である場合は、可能であればこれらのバックグラウンド プロセスを正常に終了させたいと考えています。
アプリケーションがシャットダウンされているという呼び出しを受け取ってから数秒以内に作業を早期に停止し、クリーンアップするようにプロセスに通知する方法を作成する方法を作成する問題があまり発生しないと思います。誰かがこれについて具体的なアドバイスを持っているなら、私は確かにそれを感謝します.
私の2つの主な質問は次のとおりです。
1) バックグラウンド ワーカーに物事をまとめるように伝えるのに適切な時期はいつですか。Application_End 中? 廃棄()?または、おそらく私が気付いていない 3 番目のオプションです。
2) 上記のイベント中にプロセスが終了するのを待ってから戻る場合、Application_End をすぐに返さないと、バックグラウンド ジョブを適切にシャットダウンしないよりも、アプリケーションに深刻な問題が発生する可能性があります。
ありがとう!
asp.net - ASP.NETアプリケーションレベルとセッションレベルおよびGlobal.asax...混乱
次のテキストは、私が読んでいる本「MCTS Self-Paced Training Kit(Exam 70-515)Web Applications Development with ASP.NET 4」からのものです。これは、アプリケーションのライフサイクルの概要を示しています。
- ユーザーは最初にサイトのページをリクエストします。
- 要求は処理パイプラインにルーティングされ、ASP.NETランタイムに転送されます。
- ASP.NETランタイムは、ApplicationManagerクラスのインスタンスを作成します。このクラスインスタンスは、アプリケーションのリクエストを実行するために使用される.NETFrameworkドメインを表します。アプリケーションドメインは、グローバル変数を他のアプリケーションから分離し、必要に応じて各アプリケーションを個別にロードおよびアンロードできるようにします。
- アプリケーションドメインが作成された後、HostingEnvironmentクラスのインスタンスが作成されます。このクラスは、ディレクトリフォルダなど、ホスティング環境内のアイテムへのアクセスを提供します。
- ASP.NETは、要求の処理に使用されるコアオブジェクトのインスタンスを作成します。これには、HttpContext、HttpRequest、およびHttpResponseオブジェクトが含まれます。
- ASP.NETは、HttpApplicationクラスのインスタンスを作成します(またはインスタンスが再利用されます)。このクラスは、サイトのGlobal.asaxファイルの基本クラスでもあります。このクラスを使用して、アプリケーションの開始時または停止時に発生するイベントをトラップできます。ASP.NETはHttpApplicationのインスタンスを作成するときに、SessionStateModuleなどのアプリケーション用に構成されたモジュールも作成します。
- 最後に、ASP.NETはHttpApplicationパイプラインを介して要求を処理します。このパイプラインには、リクエストの検証、URLのマッピング、キャッシュへのアクセスなどの一連のイベントも含まれています。
次に、この本はGlobal.asaxファイルの使用例を示しました。
アプリケーションはいつ開始されますか?セッションレベルとアプリケーションレベルの違いは何ですか?私はこれがどのように管理されているかについてかなり混乱しています。アプリケーションレベルのクラスはAppDomainオブジェクトの「上にある」と思い、AppDomainにはそのユーザーのそのセッションに固有の情報が含まれていました。IISがアプリケーションレベルのクラスを管理する方法と、HttpApplicationクラスがAppDomainの下にある方法を誰かに説明してもらえますか?何でもありがたいです。
ios - アプリケーションがバックグラウンドで強制終了されたときにクリーンアップを実行するにはどうすればよいですか?
私のアプリケーションは、ライフサイクル全体で必要な一時ファイルをいくつか作成します。これらのファイルは最終的に破棄する必要があるため、デバイスのスペースを占有しません。アプリケーションが終了したときに削除できると思いましたが、マルチタスクが導入されたため、ライフサイクルは以前ほど単純ではありません。私の主な質問は次のとおりです。アプリケーションがバックグラウンドに移動し、後で強制終了された場合、アプリケーションは受信しapplicationWillTerminate:
ますか?それとも、メモリから消去されただけですか?
アプリケーションがバックグラウンドに移行したときにクリーンアップを実行できません。これは、操作の途中でバックグラウンドになる可能性があり、フォアグラウンドに戻ったら一時ファイルが必要になるためです。起動時にファイルをクリーンアップできると思いますが、applicationWillTerminate:
とにかく動作に興味があります。
git - git を使用してプロジェクトのスケルトンを維持するための最良の方法
数年間、私は自分が取り組んでいる複数のプロジェクトを管理する方法を探していました。ひとつひとつが何らかの形で異なりますが、アプリケーションのコアはすべてに共通しています。現在のプロジェクトでいくつかの新機能を実装したとき、後で別のプロジェクトでそれらを使用するのは困難でした。実際にその機能を見つけるには、多くのプロジェクトを検索する必要がありました。
その後、git が登場し、プロジェクトの管理を改善するのに大いに役立ちました。アプリケーション構造全体とコア ライブラリ、ツール、およびモジュールが実装されている 1 つのスケルトン プロジェクトを作成しました。これは、私が開始する新しいプロジェクトごとのベースです。次のようになります。
スケルトンがマージする時間:
ここでは、プロジェクトの調整、ini ファイルの変更、カスタム テンプレート、モジュール、プレゼンターなどの追加を行います。今、プロジェクトはそれ自身の人生を生きています。しばらくすると、更新されたスケルトンとマージされます。
スケルトンからプロジェクトへのすべての変更を確認したいので、 --no-commit オプションを使用します。
そして今、私の質問が来ます。骨格を維持する最良の方法は何ですか? スケルトンをベースとして各プロジェクトに新しい機能を追加する場合、現在のプロジェクトにのみ関連する機能があります。しかし、アプリケーションのコアには機能があり、次のプロジェクトでもそれらが必要になるため、それらをマージしてスケルトンに戻す必要があります。
git/merge またはその他の git コマンドで、スケルトンを維持する方法が見つかりませんでした。そのため、プロジェクトとスケルトンを手動で比較し (ただし、meld という優れたツールを使用)、スケルトン用の変更を適用してから、スケルトンにコミットしています。
プロジェクトをリモートとして追加し、プロジェクトをフェッチしてからスケルトンにマージするためにスケルトンを維持しようとしましたが、この方法では、プロジェクトのみのプロジェクトへのすべての変更がスケルトンに戻ってきて、無効です。
ios - iOSアプリケーションの起動時に最初に呼び出されるメソッドと関数はどれですか?
iOSアプリケーションの起動時に最初に呼び出されるメソッドと関数はどれですか?
android - HOMEボタンのクリックでAndroidアプリを終了する
HOME
ボタンのクリックでアプリケーションを終了するには?
iphone - アプリケーションの終了後に、segmenedControl の選択されたインデックスを復元する
だから私はこのセグメント化されたコントロールをインターフェイスに持っています。ユーザーのデフォルトを使用して、選択したセグメントをアプリケーションのView Controllerに保存しapplicationDidEnterBackground
、
- (void)applicationWillEnterForeground {
NSNumber *indexNumber;
if (indexNumber = [[NSUserDefaults standardUserDefaults] objectForKey:@"selectedIndex"]) {
NSInteger selectedIndex = [indexNumber integerValue];
self.segmentedControl.selectedSegmentIndex = selectedIndex;
}
しかし、アプリを起動し、セグメントを選択してからアプリケーションを強制終了すると、このエラーが発生します。プログラムが信号を受信しました: 再起動時に「SIGKILL」。
任意の助けをいただければ幸いです
java - Android: 新しいスレッドを作成すると onResume が呼び出されますか?
これはより一般的な質問だと思いますが、私の Android プログラムは、これら 2 つのスレッド作成関連の関数呼び出しの間にメイン UI スレッドで onResume を呼び出しているようです。これにより、発生したくない他の呼び出しが発生します。これまでのところ、これを回避する唯一の方法は、グローバルフラグを設定することです (これは好きではなく、私の意見ではプログラミングの悪い習慣です)。次のようになります。
どういうわけか、これらの呼び出し (BluetoothCommHandler オブジェクトによって UI スレッドから行われる) の間に、onResume が呼び出されます。onResume やその他のアクティビティ ライフサイクル イベントがいつトリガーされるかについて、誰かが私に良い情報源を教えてくれたら、私は大いに感謝します。さらに、私はこれをチェックしました: http://developer.android.com/reference/android/app/Activity.html、見つけることができるヒントがないようでした。
最後の注意 - onResume は、これら 2 つのコマンドが呼び出される間に常に呼び出されるため、実際にはスレッド切り替えの問題ではないと思います。
また、onResume が WAY より前に呼び出される onPause のペアとして呼び出されることにも気付きましたが、これら 2 つの関数呼び出しの間で正確に発生する理由はまだわかりません。
編集:コードは以下に含まれています。
Bluetooth ハンドラ オブジェクトの呼び出し:
メイン UI スレッドの onResume 関数 (これmNoRestartFlag
は、この特定のビットが必要なときにのみ呼び出されるようにするためのものです。上記で参照しているフラグではありません。ここでは説明していない別のケースを処理します):
AndroidManifest での Activity OptionsHandler (DeviceListActivity と同じ) 宣言 (これは Theme.Dialog スタイルのアクティビティであり、UI スレッドの上にポップし、上記で言及した onPause を引き起こすことに注意してください):
実際の connectThread が作成されます。
ConnectThread の作成と実行 (mDontKill
フラグは、 onResume症状をバイパスするために使用する上記のフラグです):
問題を引き起こす実際の start() 関数:
凡例: mBS
BluetoothSocket でmDB
あるメンバー変数であり、BluetoothDevice であるメンバー変数です。
要約すると、UI スレッドで BluetoothCommHandler オブジェクトを作成します。これは ConnectThread を作成しようとし、Bluetooth ソケットで accept() コマンドを呼び出しているときに、スレッドの cancel() 関数が呼び出されたために失敗します (単にソケットを閉じる try-catch があります)。このキャンセルは、上記の start() 関数から呼び出され、onResume 関数によって呼び出されます。onResume は、メイン UI アクティビティの上に表示されるセレクタ ダイアログのために呼び出される onPause を補完するものです。この onResume は常に、編集前に言及した最初の 2 行のコードの間で呼び出されるようです。ソケットを閉じずにaccept()を発生させることができるように、なぜそれが常に正確に発生するのかを理解しようとしています。
grails - Grails Serviceクラスがアプリケーションのシャットダウンを検出するための最良の方法は?
Tomcatアプリケーションサーバーがシャットダウンしたときにクリーンアップを実行する必要があるGrailsサービスクラスがあります。
Grailsのドキュメントには、service.stop()またはdestroy()メソッド、またはあらゆる種類のアプリケーションライフサイクルリスナーを実装する方法については何も表示されません。
これを行うための最良の方法は何ですか?
ありがとう!