1

私は両方を勉強しましたが、IntentServiceは本当にシンプルですが、サービスはやや混乱しています。ここで多くの質問を見て、IntentServiceに傾倒していますが、私の仕事のある時点で、IntentServiceはそもそも行く、..これが私のゲームがすることです..ファームビルでやや似ています

  1. 新しいゲームを作成します。ゲーム内の日付は週ごとで、第1週から始まります。データはSQLiteDBに保存されます
  2. IntentServiceを開始すると、IntentServiceがこのことを行います。すべてのタスクの後、NotificationManagerを介してユーザーに通知します

    • 8時間ごとに週を更新します。(1週間= 8時間、アラームマネージャーを使用)週が更新されると、つまり1週目から2週目まで、IntentServiceは「植物が収穫する準備ができている」ことを確認します。
    • IntentServiceは、毎週天気をランダム化することも行います
    • 動物/植物の状態を確認して更新する
    • もっとランダムなことをする
    • intentServiceを停止します
    • 8時間後にIntentserviceを再度実行します。

それが私のゲームがすべきことです。IntentServiceは進むべき道ですか、それともサービスですか?IntentServiceはこれを処理できますか?私は本当にサービスが欲しかったのですが、記事やここで読んだことを理解すると、ゲームがその機能を使用できない「同時に複数のプロセス」にのみ使用する必要があります。

また、別のIntentServiceを作成できますか?このサービスは5分ごとに実行する必要があります。そうでない場合は、それで問題ありません。ありがとうございます。

4

2 に答える 2

2

IntentServiceはバックグラウンドで実行されるためseperate Thread、サービスで行われたことはUIに影響しません。ただし、サービスが想定どおりの処理を完了すると、サービスは自動的に終了します。

Aserviceもバックグラウンドで処理UI threadを実行しますが、実行する必要のある時間のかかる作業がある場合は、UIを保持します。これは、ほとんどの場合停止するように指示するまで実行されます。

アラームを使用してすべてをトリガーしている場合は、IntentServiceで問題ないと思います。

于 2012-11-03T02:49:38.370 に答える
1

あなたの場合、IntentService+AlarmManagerのペアを使用することをお勧めします。

IntentServiceは、ジョブを処理するためのキューとバックグラウンドスレッドを作成するため、すべてが次々に実行されることが保証されます。また、500行のコードが終了すると終了してシャットダウンし、データベースの更新も実行できます。

サービスは、音楽をオンラインでストリーミングするなど、バックグラウンドで作業を続けるためのものです。サービスを開始し、サービスを手動でシャットダウンします。IntentServiceの場合は自動です。

于 2012-11-03T07:22:31.993 に答える