关于android中使用bindservice进行传值的问题?

sinat_27055471 2015-04-01 08:47:30
在一个activity中点击注册按钮后向service发送从activity中获得的帐号密码。
但是在service中检查发现账户名重复需要重新输入帐户名,但是修改帐户名后再次点击注册按钮,在service中调用onrebind后获得的还是原来的帐户名。

public IBinder onBind(Intent intent) {
Log.i("MyService", "onBind");
Bundle bl = intent.getExtras();
Name = bl.getString("NAME");
Password = bl.getString("PASSWORD");
return mBinder;
}

public boolean onUnbind(Intent intent){
Log.i("MyService", "onUnbind");
return true;
}

public void onRebind(Intent intent){
Log.i("MyService", "onRebind");
Bundle bl = intent.getExtras();
String tempName = bl.getString("NAME");
Password = bl.getString("PASSWORD");
Log.i("MyService", tempName);
super.onRebind(intent);
...全文
357 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kimokiko 2015-04-02
  • 打赏
  • 举报
回复
可以先解除绑定咯
sinat_27055471 2015-04-02
  • 打赏
  • 举报
回复
可是我已经解除绑定了,这是activity中的部分代码: public void sign_up_confirm(View view){ edit_name = name.getText().toString(); edit_password = password.getText().toString(); if(edit_name.equals("") || edit_password.equals("")){ return; } Bundle bl = new Bundle(); bl.putString("NAME", edit_name); bl.putString("PASSWORD", edit_password); Log.i("MyActivity", edit_name); Intent bindIntent = new Intent(); bindIntent.setClass(this,MyService.class); bindIntent.putExtras(bl); bindService(bindIntent, connection, BIND_AUTO_CREATE); UNBIND = true; } public class MyReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent){ Bundle bundle = intent.getExtras(); String Warning = bundle.getString("warning"); if (Warning.equals("Sign up faile")){ UNBIND = false; unbindService(connection); } else if (Warning.equals("Sign up success")) { UNBIND = true; } } }

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧