- 跨应用启动Service
public class MainActivity extends Activity implements View.OnClickListener {
private Intent serviceintent ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
serviceintent = new Intent();
//通过包名启动其它应用service
serviceintent.setComponent(new ComponentName("swpu.cins.com.studytest","swpu.cins.com.studytestanother.AppService"));
//使用this后通过 onClick响应点击
findViewById(R.id.btnStartAppService).setOnClickListener(this);
findViewById(R.id.btnStoptAppService).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnStartAppService:
startService(serviceintent);
break;
case R.id.btnStoptAppService:
stopService(serviceintent);
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
stopService(new Intent(this, AppService.class));
}
@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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
AIDL (Android Interfa Definition Language)实现不同进程间的通信,是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的java代码,自己不用去写繁杂的代码,只需要在需要的时候调用即可。
- 与Service跨应用通信
- 列表内容