android初接触之service2
来源:互联网 发布:影音先锋怎么恢复数据 编辑:程序博客网 时间:2024/05/20 02:22
在android初接触之service1基础上继续学习
将服务绑定在调用的service的客户类上:
在activity_main.xml中增加连个button用来控制启动绑定服务
<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.test.MainActivity" > <Button android:id="@+id/startService" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:text="启动服务" /> <Button android:id="@+id/destoryService" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/startService" android:layout_alignRight="@+id/startService" android:layout_below="@+id/startService" android:text="注销服务" /> <Button android:id="@+id/stopBind" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/destoryService" android:layout_alignRight="@+id/destoryService" android:layout_below="@+id/destoryService" android:text="解除绑定" /> <Button android:id="@+id/startBind" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/stopBind" android:layout_alignRight="@+id/stopBind" android:layout_below="@+id/stopBind" android:text="绑定服务" /></RelativeLayout>
在MainActivity.java中实现了ServiceConnection
package com.example.test;import android.support.v7.app.ActionBarActivity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends ActionBarActivity implements OnClickListener, ServiceConnection { private Button startService,destroyService,startBind,stopBind; private Intent IntentService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建调用服务的Intent IntentService = new Intent(this,ServiceTest.class); //获取button按钮 startService = (Button) findViewById(R.id.startService); destroyService = (Button) findViewById(R.id.destoryService); startBind = (Button) findViewById(R.id.startBind); stopBind = (Button) findViewById(R.id.stopBind); startService.setOnClickListener(this); destroyService.setOnClickListener(this); startBind.setOnClickListener(this); stopBind.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.startService: //启动服务 startService(IntentService); break; case R.id.destoryService: //停止服务 stopService(IntentService); break; case R.id.startBind: //绑定服务 bindService(IntentService, this, Context.BIND_AUTO_CREATE); break; case R.id.stopBind: //解除绑定 unbindService(this); break; } } @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub System.out.println("绑定服务"); } @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub //这个方法作用还不清楚,请读者自行使用,在这里不使用 } @Override public 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; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
在ServiceTest实现了OnBind方法
package com.example.test;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;public class ServiceTest extends Service { //必须有返回值才能调用绑定方法 @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub System.out.println("绑定"); return new IBinderTest(); } private class IBinderTest extends Binder{ } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); System.out.println("服务启动"); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); System.out.println("服务注销"); }}
0 0
- android初接触之service2
- android-service2
- Android学习--service2
- Service2
- android初接触之activity1
- android初接触之activity2
- android初接触之service1
- android初接触之Intent
- android学习笔记之handler初接触!
- android studio之lambda初接触
- ffmpeg之初接触
- hadoop 之初接触
- Android初接触
- Android Studio初接触
- android studio 初接触
- android双后台服务,消息通知类(service2)
- web service2
- java学习之初接触
- android wearable-Creating a 2D Picker,Showing Confirmations and Exiting Full-Screen Activities
- mysql5.7.9 zip achive
- 关于在ios 中断言的使用
- FB Hacker Cup 2016 Qualification - D Text Editor
- android中layout属性介绍
- android初接触之service2
- Java类的生命周期
- uboot compile error with linaro gcc
- 京东金融
- 即时通讯三大框架
- tests or sets bit of a u8 type array
- 【bzoj2823】【AHOI2012】【信号塔】【随机增量法】
- RecyclerView使用详解(一)
- 深入理解JavaScript的原型和原型链