亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

kotlin實現強制下線功能

2024-07-21 23:03:45
字體:
來源:轉載
供稿:網友

強制下線是需要關閉所有的活動,先創建一個類來管理所有的活動。

class ActivityCollector {  //var activities :MutableList<Activity>=MutableList<Activity>()  companion object{    val activities = ArrayList<Activity>()    fun addActivity( activity:Activity){      activities.add(activity)    }    fun removeActivity(activity:Activity){      activities.remove(activity)    }    fun finsishAll(){      for(activity:Activity in activities){        if(!activity.isFinishing){          activity.finish()        }      }      activities.clear()    }  }}

然后建立一個所有活動的父類

open class BaseActivity : AppCompatActivity(){  var activityCollector=ActivityCollector()  lateinit var receiver:ForceOfflineReceiver  override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {    super.onCreate(savedInstanceState, persistentState)    ActivityCollector.addActivity(this)    //activityCollector.addActivity(this)  }  override fun onResume() {    super.onResume()    var inetnefilter:IntentFilter=IntentFilter()    inetnefilter.addAction("FORCE_FOOLINE")    receiver=ForceOfflineReceiver()    registerReceiver(receiver,inetnefilter)  }  override fun onPause() {    super.onPause()    if(receiver!=null){      unregisterReceiver(receiver)      // receiver=null    }  }  override fun onDestroy() {    super.onDestroy()    ActivityCollector.removeActivity(this)  }  open class ForceOfflineReceiver : BroadcastReceiver(){    override fun onReceive(context: Context, intent: Intent?) {      var builder :AlertDialog.Builder=AlertDialog.Builder(context)      builder.setTitle("Warning")      builder.setMessage("you are forced to be offline .please try to login again")      builder.setCancelable(false)      builder.setPositiveButton("ok",object :DialogInterface.OnClickListener{        override fun onClick(dialog: DialogInterface?, which: Int) {          ActivityCollector.finsishAll()          var intent=Intent(context,LoginActivity::class.java)          context.startActivity(intent)        }      })      builder.show()    }  }}

建立一個登錄的布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"><LinearLayout  android:layout_width="match_parent"  android:layout_height="60dp"  android:orientation="horizontal">  <TextView    android:layout_width="90dp"    android:layout_height="wrap_content"    android:layout_gravity="center_vertical"    android:textSize="18sp"    android:text="account:"    />  <EditText    android:id="@+id/account"    android:layout_width="0dp"    android:layout_height="wrap_content"    android:layout_weight="1"    android:layout_gravity="center_vertical"    /></LinearLayout>  <LinearLayout    android:layout_width="match_parent"    android:layout_height="60dp"    android:orientation="horizontal">    <TextView      android:layout_width="90dp"      android:layout_height="wrap_content"      android:layout_gravity="center_vertical"      android:textSize="18sp"      android:text="password:"      />    <EditText      android:id="@+id/password"      android:layout_width="0dp"      android:layout_height="wrap_content"      android:layout_weight="1"      android:layout_gravity="center_vertical"      android:inputType="textPassword"      />  </LinearLayout>  <Button    android:id="@+id/login"    android:layout_width="match_parent"    android:layout_height="60dp"    android:text="Login"    /></LinearLayout>

然后編寫一個登錄的活動,這里寫了一個簡單的登錄,密碼正確的話就進入主頁面,否則給出提示。

class LoginActivity:BaseActivity(){   lateinit var accountEdid:EditText   lateinit var passwordEdit :EditText    lateinit var login:Button  override fun onCreate(savedInstanceState: Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.login)    accountEdid=findViewById(R.id.account)    passwordEdit=findViewById(R.id.password)    login=findViewById(R.id.login)    login.setOnClickListener(View.OnClickListener {      var account =accountEdid.text.toString()      var password=passwordEdit.text.toString()      if(account.equals("admin")&&password.equals("123")){        var intent:Intent=Intent(this, MainActivity::class.java)        startActivity(intent)        finish()      }else{        Toast.makeText(this,"賬號或密碼錯誤",Toast.LENGTH_SHORT).show()      }    })  }}

然后修改一下mainactivity的代碼

class MainActivity : BaseActivity() {  override fun onCreate(savedInstanceState: Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.activity_main)    var forceOffline :Button =findViewById(R.id.force_offline)    forceOffline.setOnClickListener(View.OnClickListener {      var intent:Intent=Intent("FORCE_FOOLINE")      sendBroadcast(intent)    })  }}

最后對AndroidManifest.xml修改,把主活動設置更換一下。

<application  android:allowBackup="true"  android:icon="@mipmap/ic_launcher"  android:label="@string/app_name"  android:roundIcon="@mipmap/ic_launcher_round"  android:supportsRtl="true"  android:theme="@style/AppTheme">  <activity android:name=".MainActivity">  </activity>  <activity android:name=".LoginActivity" android:launchMode="singleTask">    <intent-filter>      <action android:name="android.intent.action.MAIN" />      <category android:name="android.intent.category.LAUNCHER" />    </intent-filter>  </activity></application>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品露脸av在线| 精品激情国产视频| 国产精品视频26uuu| 日韩中文字在线| 亚洲一区二区三区四区在线播放| 欧美另类老女人| 成人国产精品一区二区| 欧美精品免费看| 亚洲自拍小视频| 成人国产精品久久久| 久久99久久99精品免观看粉嫩| 日韩亚洲欧美成人| 国产91色在线播放| 久久成人亚洲精品| 亚洲色图激情小说| 亚洲精品一区二区三区婷婷月| 国内精品免费午夜毛片| 久久精品亚洲国产| 97香蕉超级碰碰久久免费软件| 欧美另类在线播放| 成人激情视频在线观看| 91精品国产高清| 亚洲精品视频在线观看视频| 在线电影中文日韩| 国产欧美婷婷中文| 日韩中文字幕视频在线观看| 中文字幕在线视频日韩| 日韩欧美在线中文字幕| 欧美精品videofree1080p| 欧美肥婆姓交大片| 日韩乱码在线视频| 国产精品美女999| 国产欧美最新羞羞视频在线观看| 麻豆成人在线看| 国产91色在线|免| 国产精品自拍偷拍| 欧美另类高清videos| 久久精品国产91精品亚洲| 国产精品欧美激情| 亚洲人成在线免费观看| 欧美日韩国产综合视频在线观看中文| 亚洲天堂av在线免费| 成人h视频在线观看播放| 国产精品一区二区三区免费视频| 黄色精品一区二区| 国产成人一区二| 久久影视免费观看| 亚洲va久久久噜噜噜久久天堂| 日韩电影在线观看永久视频免费网站| xxav国产精品美女主播| 福利一区福利二区微拍刺激| 日韩激情片免费| 精品国产一区二区三区久久狼黑人| 国产一区视频在线播放| 亚洲国产成人在线视频| 国产成人精品国内自产拍免费看| 亚洲a级在线播放观看| 日韩毛片在线观看| 中文字幕久热精品视频在线| 欧美成人国产va精品日本一级| 国产一区二区三区日韩欧美| 国产午夜一区二区| 精品国产乱码久久久久酒店| 精品国产一区二区三区久久狼5月| 亚洲欧美日韩图片| 国产热re99久久6国产精品| 91精品国产高清久久久久久| 欧美成人精品影院| 国产做受高潮69| 成人黄色在线免费| 亚洲一区二区三区四区在线播放| 中文字幕在线视频日韩| 亚洲免费成人av电影| 亚洲精品按摩视频| 日韩精品极品在线观看播放免费视频| 91久久夜色精品国产网站| 亚洲精品美女久久| 日韩免费在线观看视频| 国产精品国产福利国产秒拍| 午夜精品一区二区三区在线| 日韩av电影中文字幕| 国内精品模特av私拍在线观看| 欧美激情在线播放| 麻豆精品精华液| 亚洲香蕉成视频在线观看| 国产一区二区黑人欧美xxxx| www国产精品视频| 91在线国产电影| 日本在线观看天堂男亚洲| 日韩天堂在线视频| 国产美女精品免费电影| 91色琪琪电影亚洲精品久久| 国产精品成人一区| 国产亚洲一区二区精品| 日韩中文第一页| 欧美精品日韩www.p站| 亚洲欧美日本伦理| 午夜欧美不卡精品aaaaa| 欧美日韩国产黄| 91久久久久久久一区二区| 国产一区二区三区在线免费观看| 中文字幕日韩免费视频| 国产成人一区三区| 国产精品青青在线观看爽香蕉| 欧美激情视频给我| 亚洲美女av黄| 亚洲精品乱码久久久久久金桔影视| 都市激情亚洲色图| www.日韩免费| 欧美大片欧美激情性色a∨久久| 亚洲欧美中文日韩在线v日本| 亚洲tv在线观看| 成人在线中文字幕| 精品久久久在线观看| 亚洲欧美中文在线视频| 亚洲一区二区三区在线视频| 国产精品日韩在线一区| 午夜精品福利视频| 91成人福利在线| 亚州成人av在线| 国产精品一区久久久| 在线日韩av观看| 国产婷婷成人久久av免费高清| 日本欧美一二三区| 91九色综合久久| 日韩a**站在线观看| 久久久视频精品| 国产成人啪精品视频免费网| 国产精品一区二区三区在线播放| 一区二区中文字幕| 国产亚洲在线播放| 精品日韩视频在线观看| 久久久久久69| 久久精品国产欧美亚洲人人爽| 亚洲a中文字幕| 亚洲男人天堂2023| 在线免费观看羞羞视频一区二区| 欧美激情欧美激情| 欧美在线激情网| 国产精品自拍网| 国产a∨精品一区二区三区不卡| 日本精品一区二区三区在线播放视频| 成人女保姆的销魂服务| 自拍偷拍亚洲在线| 亚洲精品欧美日韩专区| 国产精品视频1区| 国产午夜精品理论片a级探花| 精品一区电影国产| 欧美激情中文字幕乱码免费| 日韩欧美高清视频| 日本乱人伦a精品| 亚洲国产日韩欧美在线动漫| 在线观看精品自拍私拍| 欧美中在线观看| 成人伊人精品色xxxx视频| 中文字幕成人在线| 日韩免费在线播放| 国产精品爽爽爽爽爽爽在线观看| 日本成人黄色片| 福利精品视频在线| 4438全国成人免费| 亚洲少妇激情视频| 538国产精品一区二区免费视频| 欧美在线一区二区三区四|