Android初始篇三,Android四大组件之Service

来源:互联网 发布:淘宝客一单佣金多少 编辑:程序博客网 时间:2024/06/05 07:57


Android 四大组件 分别是:     

    1. activity ( 活动)

    2. Service ( 服务 )

    3. Broadcast Receiver ( 广播接收器 )

    4. Content Provider ( 内容提供者 )

Service  服务:

1. service 概述:Activity级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互.

2. Service 的启动有两种方式:

a) :  context.startService(),

b) :  context.bindService(),


3.Service 的生命周期

     service 的生命周期方法比 Activity 少一些,只有 onCreate,onStart 和 onDestroy, 有两种启动 Service的方法,它们对service 生命周期不一样的,

   1>. 通过context.startService()启动

         启动流程是: context.startService() --> onCreate() ---> Service running ---> context.stopService() ---> onDestroy() ---> Service stop

    2>.通过 context.bindService() 启动

          启动流程是: context.bindService()---> onCreate() ---> onBind()  ---> Service running()--->onDestroy()-----> Service stop



简单的代码:

  MainActivity.Java类   和 MyService .java 类


 在activity_main.xml中

<LinearLayout     android:layout_width="match_parent"    android:orientation="vertical"    android:layout_height="match_parent">    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="启动"        android:id="@+id/id_btn_start"/>    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/id_btn_stop"        android:text="停止"/></LinearLayout>



MainActivity.Java类中:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button btn_start,btn_stop, btnBindService ,btnUnbind;    private Intent serviceIntent;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        serviceIntent = new Intent(this,MyService.class);        btn_start = (Button) findViewById(R.id.id_btn_start);        btn_stop = (Button) findViewById(R.id.id_btn_stop);        btn_start.setOnClickListener(this);        btn_stop.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.id_btn_start:               startService(serviceIntent);                break;            case  R.id.id_btn_stop:                stopService(serviceIntent);                break;        }    }}











MyService .java 类 它是继续service 类的


public class MyService extends Service {    @Override    public IBinder onBind(Intent intent) {        Log.e("--onBind---","onBind");        return  null;    }    @Override    public void onCreate() {        Log.e("--onCreate---","onCreate");        super.onCreate();    }    @Override    public void onDestroy() {        Log.e("--onDestroy---","onDestroy");        super.onDestroy();    }}




结果是


     按下  启动 按钮 :


返回手机桌面还是:


重新进入 按下 停止 结果是:




以上是简单的效果,后面再修改....



原创粉丝点击