1. 程式人生 > >IntentService 串聯 按順序執行(此次任務執行完才執行下一個任務)

IntentService 串聯 按順序執行(此次任務執行完才執行下一個任務)

IntentService與Service的最大區別就是前者依次執行,執行完當前任務才執行下一個任務,後者併發執行

在IntentService裡面不寫onCreate方法

MainActivity:

package com.zzw.test1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int value[] = new int[2];
        for (int i = 1; i <= 20; i++) {
            Intent intent = new Intent(this, TestAppIntentService.class);
            value[0] = i;
            value[1] = 20 - i;
            intent.putExtra(Contants.KEY, value);
            startService(intent);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Intent intent = new Intent(this, TestAppIntentService.class);
        stopService(intent);
    }

}
TestAppIntentService:
package com.zzw.test1;

import android.app.IntentService;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class TestAppIntentService extends IntentService {
    int count = 1;

    // 只能寫空的構造方法
    public TestAppIntentService() {
        super("TestAppIntentService");
        // TODO Auto-generated constructor stub
    }

    // 相當於一個執行緒 不用在裡面另外new一個執行緒
    @Override
    protected void onHandleIntent(Intent intent) {
        Log.d("------", count + "-------開始");
        int[] value = intent.getIntArrayExtra(Contants.KEY);
        int sum = value[0] * value[1];
        Log.d("-------------", value[0] + "*" + value[1] + "=" + sum);
        Log.d("------", count + "-------結束");
        count++;
    }

}