我想在一个登录的界面,用户登录后,改变其它类或者是界面的一些TextView文字的显示哈。
但是,我用了广播却不行,因为登录LoginAc类是extends了AppCompatActivity,所以,不能用上继承广播的了,如果这个登录LoginAc类不做finish()的话, 只做跳转到上一层的话, 会点击返回键,会再返回到登录界面,最后,再退出登录界面,到上一层的。不知道 该 怎么做呢?。。
我之前 用过
Toast.makeText(LoginAc.this, "登录成功!", Toast.LENGTH_SHORT).show();
//广播发送用户名
Intent intent = new Intent();
intent.setAction(ACTION_LOGIN_SUCCESS);
intent.putExtra(EXTRA_USER_NAME, userNum);
intent.putExtra(USER_ID,userId);
intent.putExtra(EXTRA_SATURN_NUM, saturnNum);
intent.putExtra(EXTRA_AVATAR,avatar);
intent.putExtra(EXTRA_PHONE_NAME,phoneNum);
intent.putExtra(EXTRA_MY_LOCATION,myLocation);
intent.putExtra(EXTRA_TOKEN, token);
sendBroadcast(intent);
// 如果登录成功
setResult(Activity.RESULT_OK);
finish();
但,好像不对。。
下面是接收的地方
//广播接收者
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// onRefresh(intent);//多个业务的用这个
//通过广播得到数据 只有一个操作的用这个
String saturnName = intent.getStringExtra(LoginAc.EXTRA_SATURN_NUM);
if(saturnName != null){
tuzhu_saturn_num = getActivity().findViewById(R.id.tuzhu_saturn_num);
tuzhu_saturn_num.setText(saturnName);//设置土星号
}
}
};