問題タブ [android-application-class]
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.
android - サービスは、アプリケーション クラスで開始するフラグメントで停止しません
私は翻訳アプリを開発していますが、何らかの理由でアプリケーション クラスでサービスを開始したいと考えています。アプリケーションを拡張する「MyApplication」クラスを作成します。
次のコード行で ClipboardService を開始したことがわかります。
他のいくつかの理由で、「SettingFragment」と呼ばれるフラグメントの1つでこのサービスを停止したい:
次のコード行でサービスを停止していることがわかります。
しかし、プログラムを実行してもサービスは停止しません。何が起こったのか、なぜ私のサービスが停止しないのか混乱しています。いくつかの点で間違いを犯していますか? よろしくお願いします...
android - Android - サービスまたは IntentService?
アプリを開いたとき、またはデバイスを起動したときに、特定の「長い」プロセスを実行するアプリがあります。
このプロセスは、ダウンロード マネージャーを介して一定量のダウンロードを実行し、プロセスが終了すると、ブロードキャスト イベントをアプリに送信して、分析をキャプチャします。
私が理解しているように、ブートブロードキャストイベントが呼び出されるたびに、Application
クラスがインスタンス化されます (まだメモリにない場合)。
Application
クラスは、ユーザーがアプリを開いたときにも開始されます。
それに基づいて、プロセスを実行するコードをクラスonCreate
のメソッド内に配置します。Application
(プロセスはそこから新しいスレッドを開始します)
ただし、「長い」プロセスは、ブート ブロードキャスト レシーバーの存続時間 (約 10 秒?) よりも長くかかっているように見えるため、アプリ プロセスは強制終了されます。それから数秒後、ダウンロードが完了した後、2 番目のブロードキャストが送信され、アプリが再び開始さApplication.onCreate
れ、いくつかの望ましくない影響が生じます。
プロセスは、単一の直線的な方法で実行され、再度呼び出されることはないと予想されていましたonCreate
。
このプロセスは 1 回しか発生しないService
ため、アプリが存続するためにより多くの時間を与えるために を作成することを考えていました。ただし、プロセスは DownloadManager に依存するため、次のようになります。
1)リターンIntentService
後にプロセスがまだ強制終了されているため、使用は機能しません(私が理解しているように) 。handleIntent
プロセスは新しいスレッドを作成するため、そのタスクは非同期になり、handleIntent
プロセス全体が終了する前にメソッドが戻ります。
2)Service
しばらくの間単に「生きている」だけで、プロセスが終了した後に停止する を作成する必要がありますか?
3) 追加の質問として、実行中の がある場合Service
、Application
クラスはインスタンス化され、サービスが停止するまでメモリに保持されますか?
android - Application クラスの物理的なレイアウトをユーザーに見せることはできますか?
ユーザーがアプリを開いたときに、アプリケーションを拡張するクラスが最初に実行されることを読みました。そのため、アプリケーション クラスにレイアウトを与えようとしているので、スプラッシュ スクリーンのように見える場合があります。しかしsetContentView()
、アプリケーションを拡張するクラスには取り組んでいません。それを行う方法はありますか?