广播强制下线功能:根据图片和注释完成程序填空。 1 )管理活动类ActivityCollector: public class ActivityCollector { public static List
activities=new ArrayList<>(); public static void addActivity(Activity activity){ activities.add(activity); } public static void removeActivity(Activity activity){ activities.remove(activity); } public static void finishAll(){ for(Activity activity:activities){ if(!activity.isFinishing()){ // 销毁活动 (1)_________________________________ } } } } 2 )活动父类BaseActivity: public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 将当前活动添加到列表中 (2)_______________________________________________ } @Override protected void onDestroy() { super.onDestroy(); // 从列表中移除所有活动 (3)_______________________________________________ } } 3 )登录活动LoginActivity: public class LoginActivity extends BaseActivity { Button loginBtn; EditText accoutEdit,passwordEdit; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login_layout); loginBtn=(Button)findViewById(R.id.login); accoutEdit=(EditText)findViewById(R.id.accout); passwordEdit=(EditText)findViewById(R.id.password); loginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String accout=accoutEdit.getText().toString(); String password=passwordEdit.getText().toString(); // 判断登录名admin和密码123456是否正确 if( (4)_________________________________________________){ Intent intent=new Intent(LoginActivity.this,MainActivity.class); startActivity(intent); finish(); }else { Toast.makeText(LoginActivity.this,"用户名或密码错误",Toast.LENGTH_SHORT).show(); } } }); } } 4 )广播接收器类ForceOfflineReceiver: public class ForceOfflineReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { AlertDialog.Builder builder=new AlertDialog.Builder(context); builder.setTitle("Warning"); builder.setMessage("You are forced to be offline.Please try to login again!"); // 设置撤销按钮无效 (5)________________________________________________ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //结束所有运行中的活动 (6)_______________________________________________ Intent intent=new Intent(context,LoginActivity.class); context.startActivity(intent); } }); // 显示警告框 (7)__________________________ } } 5 )强制下线按钮活动界面MainActivity: public class MainActivity extends BaseActivity{ Button forceOfflineBtn; ForceOfflineReceiver forceOfflineReceiver; IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); forceOfflineBtn=(Button)findViewById(R.id.force_offline); forceOfflineBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent("com.android.broadcastbestpractice.FORCE_OFFLINE"); // 发送广播 (8)____________________________________________ } }); forceOfflineReceiver=new ForceOfflineReceiver(); intentFilter=new IntentFilter(); intentFilter.addAction("com.android.broadcastbestpractice.FORCE_OFFLINE"); // 注册广播 (9)_________________________________________________________________ } @Override protected void onDestroy() { super.onDestroy(); // 广播取消注册 (10)________________________________________________________________ } }