バックグラウンドタスクを使用してUWPアプリケーションを作成しています。私は実際のアプリケーションが実行中または中断しているときにバックグラウンドを実行したくありません。それを達成するための方法はありますか?私はSystemConditionTypeを見ましたが、何も探していません。アプリケーションがバックグラウンドタスクから実行されていることを確認してください
0
A
答えて
5
バックグラウンドタスク(特別なタスクを除く)は別のプロセスで実行されるため、アプリとバックグラウンドタスクの間でメモリが共有されないため、アプリが実行されているかどうかを確認するうまい方法はありません。アプリで
アプリケーションサービス
Create an app serviceを、バックグラウンドタスクでは、サービスに接続しよう:私は正常に実装二つの方法があります。サービスが利用可能な場合は、アプリが実行中であることを意味します。これは、タスクとアプリの間のコミュニケーションが必要なときには好きなものです。
ファイルロック
これはあなただけのアプリが作動しているかどうかを知る必要があり、単純なシナリオでお気に入りの一つです。
- アプリが起動するたびに、ローカルのアプリケーションフォルダにファイルを作成/開いて書き込み用に開いて、アプリが実行されている間は開いたままにします。イベントを一時停止すると終了し、再開イベントで再度開きます。
- バックグラウンドタスクでは、ファイルを書き込み用に開こうとします。試行が成功した場合は、アプリケーションが実行されていないことを意味します。
- バックグラウンドタスクですぐにファイルを閉じます。
注:記念日のアップデートで利用可能で、新しいAPIで 、バックグラウンドタスクはsame process as the appで実行されてもよいです。新しいモデルを使用すると、この問題はもう発生しません。
関連する問題
- 1. アプリケーションが実行されていないか確認してください。
- 2. ブランチが実行されていることを確認してください。
- 3. SQL文が実行されたことを確認してください
- 4. プロセスがシェルスクリプトで実行されているか確認してください。
- 5. msiが実行される前にインストールされている他のアプリケーションを確認してください
- 6. Java - 別のJavaアプリケーションが実行されているかどうかを確認してください。
- 7. WinJS:デバッグモードで実行されているか確認してください
- 8. アプリケーションがFlutterで最初に実行されているかどうか確認してください
- 9. アプリケーションが既に実行されているかどうか確認してください
- 10. スタートスリープを使用した後にサービスが実行されていることを確認してください
- 11. プロセスがパイプとして実行されているかどうかを確認してください。
- 12. twitterアプリケーションがインストールされているか確認してください
- 13. ユーザーがアクションを実行できることを確認してください
- 14. iphone - アプリがインストールされていることを確認してください
- 15. Skypeがインストールされていることを確認してください
- 16. ヘッドセットが挿入されていることを確認してください
- 17. IONICサービスがロードされていることを確認してください。
- 18. プログラムがパイプされていることを確認してください
- 19. ALPNがサポートされていることを確認してください
- 20. キーが押されていることを確認してください。セレン
- 21. PEAR MAILがインストールされていることを確認してください
- 22. ipconfigが適用されていることを確認してください
- 23. mongoDBが接続されていることを確認してください。
- 24. アプリがインストールされていることを確認してください
- 25. linuxで実行されているMATLABスクリプトを確認してください
- 26. ビューが隠されていないことを確認してください。
- 27. CSS3遷移が実行されていることを確認してください
- 28. アプリスクリプトの1つのインスタンスが実行されていることを確認してください
- 29. RhythmboxがPython経由で実行されていることを確認してください
- 30. 必要なファイルが正常に実行されていることを確認してください。
答えをありがとう。私は、アプリケーションと同じプロセスでバックグラウンドスレッドを実行することを楽しみにしています、それは確かにこのようなものを簡素化します。 – PEK
しかし、第1のアプローチを達成しようとすると、バックグラウンドタスクAppAppviceConnection.OpenAsync()メソッドが発生してUIサービスappサービスに接続しようとすると、デバッグは何も結果を返しません。何か案が? (すべての挿入は、UIプロジェクトのaminfest ..でOKです)すべての設定はOKです。 (Anniversary、Min:Anniversaryの両方でビルドターゲット) – gericooper
@gericooperサービスへの接続を試みる前にtaskInstance.GetDeferral()メソッドを使用してDeferralタスクを取得しますか?それ以外の場合は、非同期メソッド(OpenAsync)が返るのを待機しないため、タスクは終了します。 –