栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

AIDL入门学习一,flutter框架缺点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AIDL入门学习一,flutter框架缺点

private static final String TAG = “IRemoteService”;

@Nullable

@Override

public IBinder onBind(Intent intent) {

return iBinder;

}

private IBinder iBinder = new IImoocAidl.Stub() {

@Override

public int add(int num1, int num2) throws RemoteException {

Log.e(TAG, "收到了远程的请求,请求的参数是:num1 = " + num1 + "num2 = " + num2);

return num1 + num2;

}

};

}

2.1.4、配置文件注册Service并启动Service

配置文件注册:


android:name=".IRemoteService"

android:exported=“true” />

启动Service:

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Intent intent = new Intent(this, IRemoteService.class);

startService(intent);

}

}

2.2、客户端


在同项目中新建一个名为client的module

2.2.1、创建客户端界面

ClientActivity

public class ClientActivity extends AppCompatActivity {

EditText etNum1, etNum2;

TextView tvRes;

Button btnAdd;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_client);

etNum1 = findViewById(R.id.et_num1);

etNum2 = findViewById(R.id.et_num2);

tvRes = findViewById(R.id.tv_res);

btnAdd = findViewById(R.id.btn_add);

btnAdd.setonClickListener(new View.onClickListener() {

@Override

public void onClick(View view) {

}

});

}

}

布局文件:

xmlns:app=“http://schemas.android.com/apk/res-auto”

xmlns:tools=“http://schemas.android.com/tools”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

tools:context=".ClientActivity">

android:id="@+id/et_num1"

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:hint=“输入第一个数字”

android:textSize=“22sp”

app:layout_constraintLeft_toLeftOf=“parent”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toTopOf=“parent” />

android:id="@+id/tv_add"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text="+"

android:textSize=“100sp”

app:layout_constraintLeft_toLeftOf=“parent”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toBottomOf="@+id/et_num1" />

android:id="@+id/et_num2"

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:hint=“输入第二个数字”

android:textSize=“22sp”

app:layout_constraintLeft_toLeftOf=“parent”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toBottomOf="@+id/tv_add" />

android:id="@+id/tv_res"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginTop=“10dp”

android:text=“计算结果”

android:textSize=“40sp”

app:layout_constraintLeft_toLeftOf=“parent”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toBottomOf="@+id/et_num2" />

android:id="@+id/btn_add"

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:layout_marginTop=“10dp”

android:text=“计算”

android:textSize=“22sp”

app:layout_constraintLeft_toLeftOf=“parent”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toBottomOf="@+id/tv_res" />

2.2.2、把服务端的aidl文件拷贝到客户端

2.2.3、绑定服务并拿取数据

public class ClientActivity extends AppCompatActivity {

private static final String TAG = “ClientActivity”;

EditText etNum1, etNum2;

TextView tvRes;

Button btnAdd;

IImoocAidl iImoocAidl;

private ServiceConnection mConn = new ServiceConnection() {

@Override

public void onServiceConnected(ComponentName componentName, IBinder iBinder) {

// 拿到了远程服务

iImoocAidl = IImoocAidl.Stub.asInterface(iBinder);

}

@Override

public void onServiceDisconnected(ComponentName componentName) {

// 回收资源

iImoocAidl = null;

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_client);

etNum1 = findViewById(R.id.et_num1);

etNum2 = findViewById(R.id.et_num2);
iBinder);

}

@Override

public void onServiceDisconnected(ComponentName componentName) {

// 回收资源

iImoocAidl = null;

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_client);

etNum1 = findViewById(R.id.et_num1);

etNum2 = findViewById(R.id.et_num2);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716885.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号