0

別のプロセスで開始しているインテント サービスがあり (マニフェストに含まれています)、プロセスが開始されていますが、OnHandleIntent の最初にあるログは呼び出されません。これは別のプロセスに入れたいと思います。これは、重い作業を行っており、手に入れることができるすべてのメモリが必要だからです。

これはサービス コードです。

public class ProcessingService extends IntentService {

private final String TAG = "Processing Service";

public ProcessingService() {
    super("ProcessingService");
}

@Override
protected void onHandleIntent(Intent intent) {

    Log.d(TAG, "On Handle started");

/../

}
}

そして、ここから始めます:

public void doneBtn(View v) {

    Log.d(TAG, "button pressed, starting service");
    Intent intent = new Intent(MyActivity.this, ProcessingService.class);
    startService(intent);
    finish();

}

また、アプリケーション コンテキストでサービスを呼び出してみましたが、同じ結果です。

そしてもちろん、マニフェストでは、アプリケーション スコープ内で:

<service android:name=".myapp.task.ProcessingService" android:process=":myserviceprocess"/>

ボタンが押され、プロセスが作成され、アクティビティが終了しますが、ログイン onHandleIntent は起動されません (そして、そこでの他の作業は行われません)。Intent Service を別のプロセスに配置することについて何かおかしなことはありますか? 通常のサービスを実行してから、それから非同期タスクを生成する必要がありますか?

4

1 に答える 1

0

同じコードがうまく機能しています。この問題をデバッグするために、いくつかのことをお試しください: -

  • デバッグしてみてください。Service クラスの onHandleIntent() にブレークポイントを設定し、制御がそこに到達するかどうかを確認します。

  • startService() を呼び出した後、finish() を削除してみて、動作するかどうかを確認してください。

于 2013-03-01T23:10:50.897 に答える