Android Service简单使用实战一把(一)
Android Service不解释,我一直信奉代码是最好的教材。至于入门概念还是得看看书或上网搜搜。
这个周末有点小累,加上珠海今天天气不给力,说好的晚上露营泡汤了,说好的今天横琴岛骑行也没去,那就宅着看看网络博客吧,实在不知道干啥。期待明天好天气啊,好骑行去斗门看油菜花(PS:俺的家乡油菜花海比这有名“中国最美油菜花海节”)。
先来个不和Activity交互的Service入个门吧:
MainActivity.java
package com.jesse.servicetest1; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.app.Activity; import android.content.Intent; /** * @author Jesse * Android Service learn test No:1. */ public class MainActivity extends Activity { private Button mStartBtn; private Button mStopBtn; private static final String INTENT_ACTION = "com.jesse.test.service"; /* * 对于这类不需和Activity交互的本地服务,是使用startService/stopService的最好例子。 * 运行时可以发现第一次startService时,会调用onCreate和onStart,在没有stopService * 前,无论点击多少次startService,都只会调用onStart。而stopService时调用onDestroy。 * 再次点击stopService,会发现不会进入service的生命周期的,即不会再调用onCreate, * onStart和onDestroy。而onBind在startService/stopService中没有调用。 * */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mStartBtn = (Button) this.findViewById(R.id.start); mStopBtn = (Button) this.findViewById(R.id.stop); mStartBtn.setOnClickListener(startClickListener); mStopBtn.setOnClickListener(stopClickListener); } OnClickListener startClickListener = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub startService(new Intent(INTENT_ACTION)); } }; OnClickListener stopClickListener = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub stopService(new Intent(INTENT_ACTION)); } }; }
LocalTestService.java
package com.jesse.servicetest1; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class LocalTestService extends Service { private static final String TAG = "LocalTestService"; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub Log.i(TAG, "LocalTestService--------onBind"); return null; } @Override public void onCreate() { // TODO Auto-generated method stub Log.i(TAG, "LocalTestService--------onCreate"); super.onCreate(); } @Override public void onDestroy() { // TODO Auto-generated method stub Log.i(TAG, "LocalTestService--------onDestroy"); super.onDestroy(); } @Override public void onRebind(Intent intent) { // TODO Auto-generated method stub Log.i(TAG, "LocalTestService--------onRebind"); super.onRebind(intent); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub Log.i(TAG, "LocalTestService--------onStart"); super.onStart(intent, startId); } @Override public boolean onUnbind(Intent intent) { // TODO Auto-generated method stub Log.i(TAG, "LocalTestService--------onUnbind"); return super.onUnbind(intent); } }
AndroidMainifset.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jesse.servicetest1" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.jesse.servicetest1.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".LocalTestService"> <intent-filter> <action android:name="com.jesse.test.service" /> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </service> </application> </manifest>
至于这个实战的运行结果打开LogCat你就能看见上边注释说的效果,也就说明了最简单Service调运过程。不过Service的生命周期和两种启动方式你还是要继续关注的,这个实战有且仅是一个Service的体验,也即感性认识下而已。
PS:下一篇 Android Service简单使用实战一把(二) 继续理性认识Service下。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。