問題タブ [application-restart]

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 に答える
1533 参照

if-statement - バッチ ファイル: プログラムの確認、再起動、または何もしない

私はこれに少し苦労しています。スクリプトの考え方は次のとおりです。

プログラム 1 が実行中の場合 閉じてから開く 実行されていない場合 何もしない

これは、XP および win7 マシンで使用されます。

これが私が持っているものですが、ifステートメントを組み込む方法や、私が持っているものがリモートで正しいかどうかさえわかりません:

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

android - メモリを取得するために Android OS によって呼び出されるメソッドは? それをシミュレートする方法は?

編集:

したがって、この投稿は、再起動パスを使用してバックグラウンドから呼び出すときに、Android OS を高速にロードしてアプリケーションを特定の方法で再起動する方法についてでした 。このトピックについて、まったく保証なしで推測してください

アプリケーションがバックグラウンドにあるとき、3 つの状態を見ました。

  • アプリケーションは「ただ」バックグラウンドに送信され、コールバックすると、簡単に再表示されます(すべてがまだメモリ内にあります)

  • アプリがバックグラウンドでかなりの時間を費やしているか、Android OS に十分なストレスがかかっているため、私にとっては重いゲームを開始しました (ユーフロリア、文字どおり 1000 枚の写真を閲覧し、グルーポンと Gmail を見てうまくいきました)。この場合、それはバックグラウンドからコールバックされ、OS は最後のビューを前面に持ってきて onRestoreSavedInstance() を呼び出そうとします。

  • バックグラウンドでの時間が長すぎる、クラッシュ、または巨大な負荷... とにかく、バックグラウンドから呼び出されると、アプリケーションが完全に再起動します (onRestoreSavedInstance() はまったく呼び出されませんが、保存されたインスタンスバンドルなしで onCreate および Cie が呼び出されます)。

秘訣は、ケース 2 で削除された可能性があると思われるものを onSavedInstance() に保存し、onRestoreSavedInstance() で取得することです。ただし、これらの保存された変数、属性、パラメーターを onStart() メソッドの後に呼び出す必要があります (フラグメントの確かなアクティビティである可能性があります)。onRestoreSavedInstance() メソッドはプロセスのかなり遅い時間、つまりアクティビティの onStart() の後で呼び出されるため、これは必須です。これに関するグーグルのドキュメントを参照してください:

onCreate() 中に状態を復元する代わりに、システムが onStart() メソッドの後に呼び出す onRestoreInstanceState() を実装することを選択できます。システムは、復元する保存済みの状態がある場合にのみ onRestoreInstanceState() を呼び出すため、バンドルが null かどうかを確認する必要はありません。

したがって、フラグメントとアクティビティのライフサイクルの関係により、フラグメントの onResume() メソッドの前には何も参照できません: http://www.linuxforu.com/2011/05/android-fragments-api/

それは、最終的な修正者への歓迎です:)
デビッドへのThx

/***** フィン編集 *****/

私がアップグレードしなければならないアプリケーション (友人のスタートアップを支援する) は、十分な時間バックグラウンドにあると、バックグラウンドから戻ったときにクラッシュしました。次の場合は問題ありません。

  • アプリマネージャーから殺します
  • ホームボタン長押しで消す
  • 他のいくつかのアプリケーション (eufloria、temple run 2、gmail、endomondo) を使用した後、再度呼び出します。
  • 私がインターネットで見つけた、またはそれについて考えたすべてのケース。

クラッシュした唯一の方法は、そのような時間の後にバックグラウンドに来ることです. この問題は、2 人のお客様からも報告されています。

これらの件名と Google のドキュメントに関するいくつかの投稿を読みました。特に /u/CommonsWare からの投稿 です Android OS によるバックグラウンド アプリケーションのアンロードをエミュレートする方法は? しかし、これらも Androidエミュレーターでメモリ不足をどのようにシミュレートしますか? https://groups.google.com/forum/?fromgroups#!topic/android-platform/nifVOvknFsU

それ自体はそれほど重要ではありませんが、助けていただければ幸いです。

*CommonsWare が言ったのと同じ方法でアプリを強制終了した場合、長時間 (1 時間) および/または過剰なアプリケーションの使用後にのみクラッシュするのはなぜですか? または、クラッシュは他の問題に関連していますか?

*開発者は、それをテストするために長い休憩をどのようにシミュレートしますか? 解決したい場合は、このクラッシュを再現する必要があります。それはシングルトンの問題かもしれません。人々がそれについて話しているのを見ました。

知恵と指導を本当に感謝します!

編集:

クラッシュのログキャットです

編集2:

riderID = Integer.parseInt(UserManager.getSharedInstance().getCurrentRider().getUniqueID());

今回クラッシュしたのは回線です。いつもここにあるとは限りません。しかし、これは、私がシングルトンまたは失われた値を指していたことを確認しますか? 今朝、次の投稿とガイドラインに従って、共有設定の保存を実装しようとしていたことに対抗するために:

@Override public void onSaveInstanceState(Bundle savedInstanceState) { Dbg.e(TAG, "onSavedInstance called"); if (UserManager.getSharedInstance().getCurrentRider() != null ){ Dbg.d(TAG, "We have a current rider"); Rider currentRider = UserManager.getSharedInstance().getCurrentRider(); savedInstanceState.putString(Rider.UNIQUEID_KEY, currentRider.getUniqueID()); (more attributes saved)

問題は、関数 onREstoreSavedInstance がここで呼び出されなかったことです。ユーザー インターフェイスの作成が速すぎるようです。

私は何をすべきか?後でフラグメントの呼び出しプロセスで UI を再定義しますか?

それとも、もっと複雑な問題があり、これは 1 つの限界点にすぎません (ここで解決すると、アプリケーションは後でクラッシュしますか?)

助けてくれてありがとう!続ける勇気が本当に増えました!

編集2:これは私の検索機能です:

(その他の設定)

Override を書いていないことに気付きました & 作成したライダーを UserManager に設定していません。したがって、メソッドは、私が行っていた他のいくつかの証明で呼び出されます。私は今両方を追加します。再テストします。

編集 3-4 ?

null のライダーは次のとおりです。

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

android - しばらくしてAndroidアプリケーションを再起動する

しばらくしてからアンドロイドを再起動する必要があります。私のアプリケーションは、画像付きのスライドショーです。ユーザーは、ホーム ボタンまたは戻るボタンでアプリケーションを閉じます。しばらくしてからアプリケーションを再起動する必要があります(ユーザーがデバイスに触れなくなってから数分後-スクリーンセイバーが機能するように)。これを行うことは可能ですか?どうすればこれを行うことができますか?

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

android - DefaultExceptionHandler を使用してメールでクラッシュ レポートを送信する

バックグラウンド

私はすべてのクラッシュをキャプチャし、ユーザーが独自にカスタマイズしたエラー レポートを電子メールで送信できるようにしようとしています。

アプリのログやその他の情報を送信する必要があるため、これは非常に一時的な解決策です。エンド ユーザーに送信するためのものではありません。非常に小さなテスターのグループにすぎません。

使い方

とにかく、 java.lang.Thread.UncaughtExceptionHandler から拡張され、関数 uncaughtException() を持つクラスを作成しました。Thread.setDefaultUncaughtExceptionHandler() を使用して登録すると、実際にクラッシュがキャッチされます。

この関数は外部ストレージにデータを保存し、すぐにメール アプリ (gmail) を開いてクラッシュ レポートを送信します。

問題

それは非常にうまく機能しますが、何らかの理由で、メールアプリを閉じると、アプリ自体が再起動されます。

私は複数の組み合わせを試しました:

  • システム終了(0)
  • android.os.Process.killProcess(android.os.Process.myPid());
  • デフォルトの UncaughtExceptionHandler を呼び出します。

どれも機能しませんでした。アプリは閉じますが、メールアプリを閉じるとすぐにアプリが再起動します

また、クラッシュ (トースト、ダイアログなど) をキャプチャするときに UI スレッドで機能することを行う方法もわかりません。

私が試した別の解決策は、クラッシュ レポートを送信する新しいアクティビティを開くことです。悲しいことに、アプリはアクティビティを開始しませんでした。

私が試したもう 1 つのことは、ACRA ライブラリから読み取り、クラッシュをどのように処理したかを把握しようとすることです。悲しいことに、私はそこで何が起こっているのか理解できませんでした。

私はここ(SOで)で解決策を検索し、いくつかの投稿を見つけましたが、どれもうまくいきませんでした。

質問

メール アプリを閉じたときにアプリが再起動しないようにするにはどうすればよいですか?

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

c# - コマンドライン引数なしでアプリを再起動する方法

コマンドライン引数なしでアプリケーションを再起動するにはどうすればよいですか?

アプリをいくつかの引数で開始したとしますが、再起動時に引数を取り除きたいとします。

Application.Restart();最初にアプリを起動するために使用されたのと同じコマンドライン引数を使用して、アプリを再起動します。

最初のアプリを起動するために 2 番目のアプリを使用したくありません。