登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

广播初体验 [复制链接]

2018-4-14 16:11
黑子哲也yo 阅读:120 评论:0 赞:0
Tag:  
今天学下广播的使用

写一个登陆界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.zvt_110.broadcastbestpractice.LoginActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:padding="20dp">

<TextView
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Account:"
android:textSize="18sp" />

<EditText
android:id="@+id/account"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>

<LinearLayout

android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:padding="20dp">

<TextView
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Password:"
android:textSize="18sp" />

<EditText
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:inputType="textPassword" />
</LinearLayout>

<Button
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="60dp"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:text="Login" />

</LinearLayout>

当登陆界面跳转到主界面时,写一个intent触发broadcast
btn_force_offline = findViewById(R.id.force_offline);
btn_force_offline.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("mybroadcast");
sendBroadcast(intent);

}
});
注意那个intent写的,我把他当作一个标识符

然后写一个baseactivity 让所有类都继承自这个类
public class BaseActivity extends AppCompatActivity {

private ForceOffLineReceiver receiver;

@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
ActivityCollector.addActivity(this);
}


@Override
protected void onResume() {
super.onResume();
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("mybroadcast");
receiver=new ForceOffLineReceiver();
registerReceiver(receiver,intentFilter);
}

@Override
protected void onPause() {
super.onPause();
if (receiver!=null){
unregisterReceiver(receiver);
}
receiver=null;
}

@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}


class ForceOffLineReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);

builder.setTitle("warning");
builder.setMessage("reboot rightnow");
builder.setCancelable(false);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
ActivityCollector.finalAll();
Intent intent = new Intent(context, LoginActivity.class);
startActivity(intent);
}
});

builder.show();
}
}
}


分享到:
我来说两句
facelist
您需要登录后才可以评论 登录 | 立即注册
所有评论(0)

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

返回顶部