編輯:關於Android編程
Android的Service若使用非綁定式的創建,則創建後將無法再與它取得聯系,即無法傳遞消息參數等;
所以如果希望創建後仍然與其存在聯系,那麼可以參考我的前幾篇博客《Android:Service的綁定和解綁定,Service與Activity通信》,其中講到了Service的綁定和與Activity通信的相關內容(如題目o(^▽^)o)。
Service的非綁定式的創建非常的簡單,和啟動Activity差不多。
只需要調用startService()即可創建;而調用stopSercice()則可以停止Service。
看看Service的生命周期圖吧:
1.左邊為非綁定式啟動的生命周期;
2.右邊是綁定式的生命周期;
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+z8LD5srH0ru49sD919OjrL3nw+bSwL7Juty88rWlo6zWu9PQwb249rC0xaWjrNK7uPa0tL2oo6zSu7j2zaPWuaOstbGwtM/CyrG0pbeiz+DTpsrCvP6jrM2syrFUb2FzdNK7z8LQxc+ioaM8YnIgLz4KtvhTZXJ2aWNltcTJ+sP81tzG2re9t6jW0M7S08NMb2djYXTK5LP2seq8x6GjPC9wPgo8cD7Uy9DQvdjNvCDI58/Co7o8L3A+CjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20150316/20150316085114119.png" title="\" />
Logcat的截圖如下:
1.當startService()創建Service,調用onCreate()和onStartCommand()兩個生命周期方法;
2.當Service創建後,在點擊創建按鈕,會發現只調用了onStartCommand()而沒有調用onCreate();
3.當stopService()停止Service,調用onDestroy()的生命周期方法;
4.會發現onBind()和UnonBind()沒有被調用,這是為什麼呢?因為這是非綁定式的啟動嗎……
好了最後附上代碼:
MainActivity.java:
package activity.wyc.com.service;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
private Button btnObj,btn02Obj;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnObj = (Button)findViewById(R.id.btnObj);
btn02Obj = (Button)findViewById(R.id.btn02Obj);
intent = new Intent(MainActivity.this,MyService.class);
btnObj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService(intent);
Toast.makeText(MainActivity.this,startService,Toast.LENGTH_SHORT).show();
}
});
btn02Obj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopService(intent);
Toast.makeText(MainActivity.this,stopService,Toast.LENGTH_LONG).show();
}
});
}
}
MyService.java:
package activity.wyc.com.service;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class MyService extends Service {
private String MyTag = MyTag;
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
Log.i(MyTag, onBind);
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException(Not yet implemented);
}
@Override
public void onCreate() {
super.onCreate();
Log.i(MyTag, onCreate);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(MyTag, onStartCommand);
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
Log.i(MyTag, onDestroy);
super.onDestroy();
}
@Override
public boolean onUnbind(Intent intent) {
Log.i(MyTag, onUnbind);
return super.onUnbind(intent);
}
}
activity_main.xml:
AndroidManifest.xml:
【注意】Service也是和Activity一樣的組件,四大核心組件之一,所以也必須在AndroidManifest.xml中注冊;
來這實習已經10多天了,今天整理整理學習時的Android筆記。正所謂好記性不如爛筆頭,今天來說說service組件。 service可以在和多
多點觸控事件簡單介紹最關鍵的是onTouchEvent這個方法明天應該就會繼續介紹比這要更加多的於事件相關的,比如事件分發等,今天是簡單的事件,不多說,如下:單指 4個動
隨著不斷接觸Android Studio,越來越發現和Eclipse有著巨大的區別。無論是表面的目錄結構,還是內在對各種資源的管理。本篇就來聊聊Android Studi
小米手機的WIFI設置是在沒有某WIFI熱點的情況下,即使已經保存了的WIFI密碼也是不顯示的,這樣就造成我們沒法將其刪除.只能再回到原來的WIFI熱點下才