利用接口调用服务中特定的方法
利用接口调用服务中特定的方法,好处:是为了保护服务中的其他方法
public interface PayInterface {
public void interface_pay();
}
public class PayService extends Service {
class MyBinder extends Binder implements PayInterface{
@Override
public void interface_pay() {
pay();
}
}
@Override
public IBinder onBind(Intent intent) {
MyBinder binder = new MyBinder();
return binder;
}
@Override
public void onCreate() {
super.onCreate();
}
public void pay(){
System.out.println("支付服务");
}
}
public class MainActivity extends AppCompatActivity {
private Intent intent;
private MyServiceConnection serviceConnection;
private PayInterface payInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent(this,PayService.class);
serviceConnection = new MyServiceConnection();
}
public void bind(View view){
bindService(intent,serviceConnection,BIND_AUTO_CREATE);
}
public void pay(View view){
if(payInterface!=null){
payInterface.interface_pay();//调用支付功能。
}
}
class MyServiceConnection implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
payInterface = (PayInterface) service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unbindService(serviceConnection);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现