IntentService 串聯 按順序執行(此次任務執行完才執行下一個任務)
阿新 • • 發佈:2019-02-04
IntentService與Service的最大區別就是前者依次執行,執行完當前任務才執行下一個任務,後者併發執行
在IntentService裡面不寫onCreate方法
MainActivity:
TestAppIntentService: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); } }
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++; } }