国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

kotlin實(shí)現(xiàn)強(qiáng)制下線功能

2024-07-21 23:03:45
字體:
供稿:網(wǎng)友

強(qiáng)制下線是需要關(guān)閉所有的活動(dòng),先創(chuàng)建一個(gè)類來管理所有的活動(dòng)。

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()    }  }}

然后建立一個(gè)所有活動(dòng)的父類

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()    }  }}

建立一個(gè)登錄的布局文件

<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>

然后編寫一個(gè)登錄的活動(dòng),這里寫了一個(gè)簡單的登錄,密碼正確的話就進(jìn)入主頁面,否則給出提示。

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,"賬號或密碼錯(cuò)誤",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修改,把主活動(dòng)設(shè)置更換一下。

<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>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到kotlin教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 洪江市| 东安县| 易门县| 和林格尔县| 安宁市| 新乡县| 界首市| 金堂县| 和田市| 麦盖提县| 山丹县| 闽侯县| 隆昌县| 平潭县| 东丽区| 察哈| 佛教| 靖西县| 无棣县| 龙海市| 萍乡市| 乌什县| 繁峙县| 巩义市| 永仁县| 孙吴县| 龙南县| 遵化市| 邯郸县| 出国| 东丽区| 罗平县| 莱州市| 新龙县| 都江堰市| 华宁县| 岳池县| 宁强县| 武安市| 类乌齐县| 长阳|