当前位置: 首页 > news >正文

企业网站优化找哪家怎么建设卡盟网站

企业网站优化找哪家,怎么建设卡盟网站,吉林做网站找谁,医院有关页面设计模板安卓开发_广播机制_广播的最佳实践:实现强制下线功能 ActivityCollector类用于管理所有的ActivityBaseActivity类作为所有Activity的父类创建一个LoginActivity来作为登录界面布局LoginActivity 在MainActivity中加入强制下线功能布局MainActivity在BaseActivity中注…

安卓开发_广播机制_广播的最佳实践:实现强制下线功能

  • ActivityCollector类用于管理所有的Activity
  • BaseActivity类作为所有Activity的父类
  • 创建一个LoginActivity来作为登录界面
    • 布局
    • LoginActivity
  • 在MainActivity中加入强制下线功能
    • 布局
    • MainActivity
    • 在BaseActivity中注册广播接收
    • 将LoginActivity注册为主Activity
  • 参考

ActivityCollector类用于管理所有的Activity

object ActivityCollector {private val activities = ArrayList<Activity>()fun addActivity(activity: Activity) {activities.add(activity)}fun removeActivity(activity: Activity) {activities.remove(activity)}fun finishAll() {for (activity in activities) {if (!activity.isFinishing) {activity.finish()}}activities.clear()}
}

BaseActivity类作为所有Activity的父类

open class BaseActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)ActivityCollector.addActivity(this)}override fun onDestroy() {super.onDestroy()ActivityCollector.removeActivity(this)}
}

创建一个LoginActivity来作为登录界面

布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="60dp"><TextViewandroid:layout_width="90dp"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:textSize="18sp"android:text="Account:" /><EditTextandroid:id="@+id/accountEdit"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:layout_gravity="center_vertical" /></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="60dp"><TextViewandroid:layout_width="90dp"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:textSize="18sp"android:text="Password:" /><EditTextandroid:id="@+id/passwordEdit"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:layout_gravity="center_vertical"android:inputType="textPassword" /></LinearLayout><Buttonandroid:id="@+id/login"android:layout_width="200dp"android:layout_height="60dp"android:layout_gravity="center_horizontal"android:text="Login" />
</LinearLayout>

LoginActivity

class LoginActivity : AppCompatActivity() {private lateinit var binding: ActivityLoginBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityLoginBinding.inflate(layoutInflater)setContentView(binding.root)binding.login.setOnClickListener {val account = binding.accountEdit.text.toString()val password = binding.passwordEdit.text.toString()if(account == "admin" && password == "123456"){val intent = Intent(this, MainActivity::class.java)startActivity(intent)finish()}else{Toast.makeText(this, "account or password is invaild", Toast.LENGTH_SHORT).show()}}}
}

在MainActivity中加入强制下线功能

布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent" ><Buttonandroid:id="@+id/forceOffline"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Send force offline broadcast" />
</LinearLayout> 

MainActivity

class MainActivity : BaseActivity() {private lateinit var binding: ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)binding.forceOffline.setOnClickListener {val intent = Intent("com.example.broadcastbestpractice.FORCE_OFFLINE")sendBroadcast(intent)}}
}

在BaseActivity中注册广播接收

open class BaseActivity : AppCompatActivity() {private lateinit var receiver: ForceOfflineReceiveroverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)ActivityCollector.addActivity(this)}override fun onResume() {super.onResume()val intentFilter = IntentFilter()intentFilter.addAction("com.example.broadcastbestpractice.FORCE_OFFLINE")receiver = ForceOfflineReceiver()registerReceiver(receiver, intentFilter)}override fun onPause() {super.onPause()unregisterReceiver(receiver)}override fun onDestroy() {super.onDestroy()ActivityCollector.removeActivity(this)}inner class ForceOfflineReceiver: BroadcastReceiver(){override fun onReceive(context: Context, intent: Intent) {AlertDialog.Builder(context).apply{setTitle("Warining")setMessage("You are forced to be offline. Please try to login again.")setCancelable(false)setPositiveButton("OK") { _, _ ->ActivityCollector.finishAll()val i = Intent(context, LoginActivity::class.java)context.startActivity(i)}show()}}}
}

将LoginActivity注册为主Activity

参考

郭霖. 《第一行代码 Android 第3版》

http://www.yayakq.cn/news/472452/

相关文章:

  • 域名有没有被注册哪个网站最好老鹰网站建设
  • 公司网站建设方案拓扑图广州官方网站建设
  • 网站建设优化兰州投资公司设立条件
  • 哪些是实名制网站开发网站需要注意的安全问题
  • 做财经比较好的网站有哪些湖南对外建设集团网站
  • 建基建设集团网站淮安哪有专业做网站的公司
  • 做网站广告联盟百度代理推广
  • 南宁网站建设兼职网站建站北京
  • 东城做网站昂昂溪网站建设
  • 杭州网站优化流程怎样建设网站啊
  • 商城网站建设模板下载刚刚沈阳发布重要通知
  • 二合一收款码免费制作网站做网站编辑好还是美工好
  • 通辽网站seo郑州微信小程序开发哪家好
  • 做外围的都上什么网站找注册logo去哪里注册
  • 赣州做网站jx25室内装饰设计专业
  • 营销网站建设合同电子商务网站建设有哪些流程图
  • 织梦网站建设流程wordpress知名网站
  • 山东专业网站建设公司哪家好网站开发的相关技术
  • 苏州街网站建设wordpress 文章id更改
  • 专业h5网站建设教程网站建设sycmjz
  • 404网站怎么打开凡科官网登录
  • 甘肃省建设厅官方网站造价总站网站备案提示
  • 此网站正在建设中千元低价网站建设
  • 网站搭建哪家好工商执照查询官网
  • 办公网站建设html做的网页怎么变成网站
  • 电商服务站点建设方案无锡网站建设网站
  • 东莞网站建设方案维护怎么查询网站是哪家公司做的
  • 永州微网站建设记的网站域名
  • wordpress 阿里ossseo排名优化的方法
  • wordpress搭建漫画站小语种网站