多个activity操作一个service
来源:互联网 发布:excel编程用途 编辑:程序博客网 时间:2024/06/06 23:57
service代码
public class UploadService extends Service{
private Context mContext;
private ServerDataManager mServerDataManager;
private int testId = 0;
@Override
public void onCreate() {
super.onCreate();
mContext = this;
testId = testId+10;
Log.e("aaaa", "======= UploadService onCreate");
}
@Override
public void onStart(Intent intent, int startId) {
Log.e("aaaa", "======= UploadService onStart");
super.onStart(intent, startId);
}
@Override
public void onRebind(Intent intent) {
Log.e("aaaa", "======= UploadService onRebind");
super.onRebind(intent);
}
@Override
public boolean onUnbind(Intent intent) {
Log.e("aaaa", "======= UploadService onUnbind");
return super.onUnbind(intent);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("aaaa", "======= UploadService onStartCommand");
Log.e("aaaa", "======= UploadService testId : "+testId);
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
Log.e("aaaa", "======= UploadService onBind");
Log.e("aaaa", "======= UploadService testId : "+testId);
return new UploadBind();
}
public class UploadBind extends Binder{
public UploadService getService(){
return UploadService.this;
}
public int getTestId(){
return testId;
}
public int updateTestId(int data){
testId = testId + data;
return testId;
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
activity a 部分代码:
@Override
protected void onCreate() {
TestConn conn = new TestConn();
Intent service = new Intent();
service.setClass(mContext, UploadService.class);
bindService(service, conn, BIND_AUTO_CREATE);
}
@Override
protected void onResume() {
Log.e("aaaaa", "======= MainActivity onResume : " + bind);
if(bind!=null){
Log.e("aaaaa", "======= MainActivity bind : " + bind.getTestId());
}
super.onResume();
}
private UploadBind bind;
class TestConn implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
bind = (UploadBind)arg1;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
}
activity b 部分代码:
@Override
protected void onCreate() {
TestConn conn = new TestConn();
Intent service = new Intent();
service.setClass(mContext, UploadService.class);
bindService(service, conn, BIND_AUTO_CREATE);
}
@Override
protected void onResume() {
Log.e("aaaaa", "======= MessageActivity onResume : " + bind);
if(bind!=null){
Log.e("aaaaa", "======= MessageActivity bind : " + bind.getTestId());
}
super.onResume();
}
private UploadBind bind;
class TestConn implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
bind = (UploadBind)arg1;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
}
@Override
public void onBackClick() {
if(bind!=null){
Log.e("aaaaa", "======= MessageActivity onBackClick00 bind : " + bind.getTestId());
int data = bind.updateTestId(100);
Log.e("aaaaa", "======= MessageActivity onBackClick11 bind : " + data);
Log.e("aaaaa", "======= MessageActivity onBackClick22 bind : " + bind.getTestId());
}
finish();
}
流程:
activity a 以bindservice方式 启动 service,会执行service里面的onCreate, onBind方法,
跳转到activity b后,再次以bindservice方式 启动 service,不执行service里面的任何函数,
但是获得service里面的bind,改变service里面的某个变量x,
返回activity a,a获取service里面的bind,然后获取变量x,x的值为activity b设置的值
- 多个activity操作一个service
- 安卓开发观察者模式应用-一个service通知多个activity更新ui的实现
- Service与多个Activity交互
- 一个service管理多个service
- Android中一个Activity关闭另一个Activity或者在一个Activity中关闭多个Activity
- Android的Activity启动长时间的操作开启一个Service比开启一个线程好
- Android中Service与多个Activity通信
- ANDROID中SERVICE与多个ACTIVITY通信
- Android开发之Service与多个Activity通信
- Android中Service与多个Activity通信
- android 一个Activity多个listview
- Activity传递一个或者多个对象
- 一个Activity管理多个Fragment切换
- Activity传递一个或者多个对象
- 关闭一个或多个activity
- 多个Activity通用一个View对象
- 定义多个Activity以及启动一个Activity的方法
- 一个Tomcat配置多个Service多个项目
- Android Studio中忽略目录不显示在Project文件列表中
- spring 整合WebService 设置超时
- 颜色提取器------Palette
- Google 核心的 Java 常用库
- [C++面试题]之字符串
- 多个activity操作一个service
- HttpContext.Response.ContentType列表
- 解决Android中RadioButton图片和文本居中及底部经常被工具烂覆盖掉内容
- SQL基本语句及其使用方法之【CREATE/SELECT/ALTER/DROP/GROUP BY】
- /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别
- join,left join and where的测试
- AppNinja 开发手记4: dmg kernelcache解密命令
- 啦啦啦
- 下拉刷新