問題タブ [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.

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

android - サービスは、アプリケーション クラスで開始するフラグメントで停止しません

私は翻訳アプリを開発していますが、何らかの理由でアプリケーション クラスでサービスを開始したいと考えています。アプリケーションを拡張する「MyApplication」クラスを作成します。

次のコード行で ClipboardService を開始したことがわかります。

他のいくつかの理由で、「SettingFragment」と呼ばれるフラグメントの1つでこのサービスを停止したい:

次のコード行でサービスを停止していることがわかります。

しかし、プログラムを実行してもサービスは停止しません。何が起こったのか、なぜ私のサービスが停止しないのか混乱しています。いくつかの点で間違いを犯していますか? よろしくお願いします...

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

android - Android - サービスまたは IntentService?

アプリを開いたとき、またはデバイスを起動したときに、特定の「長い」プロセスを実行するアプリがあります。

このプロセスは、ダウンロード マネージャーを介して一定量のダウンロードを実行し、プロセスが終了すると、ブロードキャスト イベントをアプリに送信して、分析をキャプチャします。

私が理解しているように、ブートブロードキャストイベントが呼び出されるたびに、Applicationクラスがインスタンス化されます (まだメモリにない場合)。

Applicationクラスは、ユーザーがアプリを開いたときにも開始されます。

それに基づいて、プロセスを実行するコードをクラスonCreateのメソッド内に配置します。Application(プロセスはそこから新しいスレッドを開始します)

ただし、「長い」プロセスは、ブート ブロードキャスト レシーバーの存続時間 (約 10 秒?) よりも長くかかっているように見えるため、アプリ プロセスは強制終了されます。それから数秒後、ダウンロードが完了した後、2 番目のブロードキャストが送信され、アプリが再び開始さApplication.onCreateれ、いくつかの望ましくない影響が生じます。

プロセスは、単一の直線的な方法で実行され、再度呼び出されることはないと予想されていましたonCreate

このプロセスは 1 回しか発生しないServiceため、アプリが存続するためにより多くの時間を与えるために を作成することを考えていました。ただし、プロセスは DownloadManager に依存するため、次のようになります。

1)リターンIntentService後にプロセスがまだ強制終了されているため、使用は機能しません(私が理解しているように) 。handleIntentプロセスは新しいスレッドを作成するため、そのタスクは非同期になり、handleIntentプロセス全体が終了する前にメソッドが戻ります。

2)Serviceしばらくの間単に「生きている」だけで、プロセスが終了した後に停止する を作成する必要がありますか?

3) 追加の質問として、実行中の がある場合ServiceApplicationクラスはインスタンス化され、サービスが停止するまでメモリに保持されますか?

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

android - アクティビティの背景画像を設定するための Android gridview onItemClickListener

私は自分のAndroidアプリにかなりこだわっています...画像でグリッドビューを作成しようとしています

ここに画像の説明を入力

OnItemClickListener() を使用して画像を背景として設定します。私が抱えている問題は...画像を背景として設定すると、アクティビティを閉じると画像が消えます。

ユーザーがアクティビティを終了したときに消えることなく、グリッドビューから選択して背景画像を設定してもらいたいです。

////////////マイコード//////////////////

//////アクティビティ.........../////////

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

android - Application クラスの物理的なレイアウトをユーザーに見せることはできますか?

ユーザーがアプリを開いたときに、アプリケーションを拡張するクラスが最初に実行されることを読みました。そのため、アプリケーション クラスにレイアウトを与えようとしているので、スプラッシュ スクリーンのように見える場合があります。しかしsetContentView()、アプリケーションを拡張するクラスには取り組んでいません。それを行う方法はありますか?