....

2014年9月21日 星期日

[長知識] Android Service 在背景偷偷下載資料不是問題~

在這裡跟大家分享 Android Service的做法,其實非常非常的簡單~

事先準備
1. 你要在哪裡啟動Service
2. 你要在哪裡關閉Service
3. 準備一個class來繼承Service

Let's gooooooooooooooooooo...





這是啟動Service的方法


public void StartService(){
    	
    		Intent intentService = new Intent(啟動Service的class.this, 繼承Service的class.class);
    		intentService.setFlags(intentService.FLAG_ACTIVITY_NEW_TASK);
    		startService(intentService);	
    	
    }


這是關閉Service的方法,一定要關閉哦,不然會一直做Service的事情



public void StopService(){
    	
    		Intent intentService = new Intent(關閉Service的class.this, 繼承Service的class.class);
            	stopService(intentService);
    	
    }


燈燈燈燈......重點來了=>繼承Service的class



public class ServiceActivity extends Service{

	private Handler objhandler = new Handler();
	//I want to debug start Service or not
	private int intCounter=0;
	
	private Runnable mTasks = new Runnable() {
		
		public void run() {
                        //每次進來就+1 可以檢查有沒有正常執行
			intCounter +=1;
			Log.i("Ken", "Counter:" + Integer.toString(intCounter));
			//every 5 sec to run this task
			objhandler.postDelayed(mTasks, 5000);			
		}
	};

	public void onStart(Intent intent, int startId) {
		super.onStart(intent, startId);
	};
	
	@Override
	public void onCreate() {
		objhandler.postDelayed(mTasks, 5000); 
		super.onCreate();
	}
	
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}
	
	@Override
	public void onDestroy() {
		objhandler.removeCallbacks(mTasks);
		super.onDestroy();
	}
}




再來這個AndroidManifest.xml一定也要加入哦,不然Android不認識妳
在這三項外面記得包成

<service 
            android:name=".ServiceActivity"
            android:exported="true"
            android:process=":remote">  
</service>



 AndroidManifest.xml
        
         android:exported="true" 
         android:name=".ServiceActivity" 
         android:process=":remote;    




這樣就大功告成了OHYA.................

沒有留言:

張貼留言