public class PersonService extends Service {
private static String names = "alice & iland";
public PersonBinder mPersonBinder;
@Override
public void onCreate() {
super.onCreate();
mPersonBinder = new PersonBinder();
}
@Override
public IBinder onBind(Intent intent) {
return mPersonBinder;
}
public class PersonBinder extends IPersonManager.Stub{
@Override
public String getAllName() throws RemoteException {
return names;
}
}
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private static final String TAG = "MainActivity";
private Button btnGet;
private EditText etShow;
public IPersonManager mIPersonManager;
ServiceConnection sc = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.i(TAG, "onServiceConnected: ");
mIPersonManager = IPersonManager.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.i(TAG, "onServiceDisconnected: ");
mIPersonManager = null;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnGet = (Button) findViewById(R.id.btn_getname);
etShow = (EditText) findViewById(R.id.et_allnamef);
btnGet.setOnClickListener(this);
Intent intent = new Intent("com.ly.testaidlserver.aidl.AIDL_SERVICE");
intent.setPackage("com.ly.testaidlserver");
bindService(intent,sc, Service.BIND_AUTO_CREATE);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_getname:
String names = null;
try {
if (mIPersonManager!=null)
names = mIPersonManager.getAllName();
} catch (RemoteException e) {
e.printStackTrace();
}
etShow.setText(names);
break;
default:
break;
}
}@Override
protected void onDestroy() {
super.onDestroy();
unbindService(sc);
}
}
Intent intent = new Intent("com.ly.testaidlserver.aidl.AIDL_SERVICE");
intent.setPackage("com.ly.testaidlserver");
bindService(intent,sc, Service.BIND_AUTO_CREATE);
sourceSets{
main {
aidl.srcDirs = ['src/main/aidl','src/main/java']
}
}
public class Person implements Parcelable {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static final Creator<Person> CREATOR = new Creator<Person>() {
@Override
public Person createFromParcel(Parcel in) {
return new Person(in.readString(), in.readInt());
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
interface IPersonManager {
String getAllName();
List<Person> getPersonList();
}
public class PersonService extends Service {
private List<Person> persons = new ArrayList<Person>();
public PersonBinder mPersonBinder;
@Override
public void onCreate() {
super.onCreate();
mPersonBinder = new PersonBinder();
Person p1 = new Person("alice",23);
persons.add(p1);
Person p2 = new Person("iland",18);
persons.add(p2);
}
@Override
public IBinder onBind(Intent intent) {
return mPersonBinder;
}
public class PersonBinder extends IPersonManager.Stub{
@Override
public String getAllName() throws RemoteException {
return "";
}
@Override
public List<Person> getPersonList() throws RemoteException {
return persons;
}
}
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private static final String TAG = "MainActivity";
private Button btnGet;
private EditText etShow;
public IPersonManager mIPersonManager;
ServiceConnection sc = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.i(TAG, "onServiceConnected: ");
mIPersonManager = IPersonManager.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.i(TAG, "onServiceDisconnected: ");
mIPersonManager = null;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnGet = (Button) findViewById(R.id.btn_getname);
etShow = (EditText) findViewById(R.id.et_allnamef);
btnGet.setOnClickListener(this);
Intent intent = new Intent("com.ly.testaidlserver.aidl.AIDL_SERVICE");
intent.setPackage("com.ly.testaidlserver");
bindService(intent,sc, Service.BIND_AUTO_CREATE);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_getname:
ArrayList<Person> persons = null;
try {
if (mIPersonManager!=null)
persons = (ArrayList<Person>) mIPersonManager.getPersonList();
} catch (RemoteException e) {
e.printStackTrace();
}
String result = "";
for (Person person : persons){
result = result+person.getName()+"__"+person.getAge();
}
etShow.setText(result);
break;
default:
break;
}
}@Override
protected void onDestroy() {
super.onDestroy();
unbindService(sc);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有