service

本文介绍了一个具体的Android服务(Service)示例,展示了如何通过Binder机制实现Activity与Service之间的交互。其中包括Service的创建、启动及绑定过程,以及如何通过ServiceConnection在Activity中获取Service提供的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class AskService extends Service
{
public class SimpleBinder extends Binder
{
/**
* 获取 Service 实例
*/
public AskService getService()
{
return AskService.this;
}
public int add(int a, int b)
{
return a + b;
}
}
public SimpleBinder sBinder;
/**
* 当启动Service的时候会调用这个方法
*/
public void onCreate()
{
CommonUtil.log("create service");
super.onCreate();
sBinder = new SimpleBinder();
}
/**
* 当系统被销毁的时候会调用这个方法
*/
public void onDestroy()
{
CommonUtil.log("deatroy service");
super.onDestroy();
}
public IBinder onBind(Intent intent)
{
return sBinder;
}
/**
* 当启动Service的时候会调用这个方法
*/
public int onStartCommand(Intent intent, int flags, int startId)
{
CommonUtil.log("start service");
return super.onStartCommand(intent, flags, startId);
}
}

Activity:private ServiceConnection sc;
private boolean isBind;
sc = new ServiceConnection()
{
@Override
public void onServiceDisconnected(ComponentName name) {
}

@Override
public void onServiceConnected(ComponentName name, IBinder service) {
AskService.SimpleBinder sBinder = (AskService.SimpleBinder)service;
CommonUtil.log("3 + 5 = " + sBinder.add(3, 5));
CommonUtil.log(sBinder.getService().toString());
}
};
bindService(new Intent(Index.this, AskService.class), sc, Context.BIND_AUTO_CREATE);
isBind = true;

CommonUtil.log("running service is:"+isMyServiceRunning());
private boolean isMyServiceRunning()
{
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE))
{
if ("com.huawei.voice.activity.AskService".equals(service.service.getClassName()))
{
return true;
}
}
return false;
}

AndroidManifest.xml:<service android:name=".activity.AskService" android:icon="@drawable/logo"
android:label="ask everyday"></service>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值