Android IntentService使用
因为多数启动服务不必同时处理多个请求(在多线程情景下会很危险),所以使用IntentService类实现服务是很好的选择。本经验将通过继承IntentService输出当前时间教大家如何使用IntentService。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.basillee.asus.demo.MainActivity5"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="当前时间" android:id="@+id/button_current_time" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> </RelativeLayout>
然后我们在编写一个CurrentTimeService类,继承IntentService
package com.basillee.asus.demo; import android.app.IntentService; import android.content.Intent; import android.text.format.Time; import android.util.Log; public class CurrentTimeService extends IntentService { public CurrentTimeService(){ super("CurrentTimeService"); } @Override protected void onHandleIntent(Intent intent) { Time time=new Time(); time.setToNow(); String currentTime=time.format("%Y-%m-%d %H:%M:%S"); Log.i("CurrentTimeService",currentTime); } }
然后我们在Oncreate方法里面编写如下代码为button增加监听事件
package com.basillee.asus.demo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity5 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity5); Button button= (Button) findViewById(R.id.button_current_time); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startService(new Intent(MainActivity5.this, CurrentTimeService.class)); } }); } }
更多细节请看: http://jingyan.baidu.com/season/48891