服务—Service(一)

来源:互联网 发布:不是淘宝网禁售商品 编辑:程序博客网 时间:2024/06/05 00:16

Service 是android 四大组件之一。对于Service表面看起来比较陌生,但是在实际情况下还是很常见的,比如你在后台播放一首音乐,下载一份文件等等。在我们享受到温馨的操作手感,贴心的人性化可视界面界面,一直在后台默默无闻工作的Service算得上是无名英雄了。因此,作为程序员来讲,揭开Service的神秘面纱是非常有必要的,下面让我们跟随着敲打键盘的声音来看看如何创建一个服务,开始一个服务,销毁一个服务呢?通常叫做Service的生命周期。

      我在以前就接触过Service,在这里就简要写一下步骤,毕竟这是留给自己复习用的。

1、编写一个类继承Service

2、注册Service

3调用startSerivce方法启动Service,调用stopService方法停止一个服务。

package com.example.service_01;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.widget.Toast;public class FirstService extends Service{@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// TODO Auto-generated method stubSystem.out.println("flags----->"+flags);System.out.println("startId----->"+startId);String name = intent.getStringExtra("name");Toast.makeText(this, name, Toast.LENGTH_SHORT).show();return super.onStartCommand(intent, flags, startId);}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}}
package com.example.service_01;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}//启动服务设置点击事件public void onClick_StartService(View view){Intent intent = new Intent(this, FirstService.class);intent.putExtra("name", "how are you !");startService(intent);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
注册
 <service android:name=".FirstService" android:enabled="true"></service>
我随便写了一个小例子,停止服务如法炮制。只是android SDK 提供了onStartCommand方法取代了onStart方法,参数只是多了一个Flags .并没有什么特别的意思。





0 0