最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)現(xiàn)強(qiáng)制下線功能的示例代碼

 更新時(shí)間:2020年07月15日 09:07:49   作者:心悅君兮君不知-睿  
這篇文章主要介紹了Android實(shí)現(xiàn)強(qiáng)制下線功能的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、回顧

  • 上次連載寫了兩個(gè)類,一個(gè)類ActivityCollector.java用于管理所有的活動(dòng);一個(gè)類是BaseActivity.java作為所有活動(dòng)的父類;
  • 還有一個(gè)放在layout目錄中的登錄界面login.xml

二、登錄頁(yè)面的活動(dòng)

接下來(lái)寫一個(gè)登錄頁(yè)面的活動(dòng),繼承自BaseActivity.java

package com.example.broadcastbestpractice;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends BaseActivity{
 private EditText accountEdit;
 
 private EditText passwordEdit;
 
 private Button login;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.login);
 accountEdit = (EditText)findViewById(R.id.account);
 passwordEdit = (EditText)findViewById(R.id.password);
 login = (Button) findViewById(R.id.login);
 login.setOnClickListener( new OnClickListener() {
 @Override
 public void onClick(View v) {
 String account =accountEdit.getText().toString();
 String password = passwordEdit.getText().toString();
 //如果賬號(hào)是admin,密碼是12345,就認(rèn)為登錄成功
 if(account.contentEquals("admin") && password.equals("12345")) {
 Intent intent = new Intent(LoginActivity.this,MainActivity.class);
 startActivity(intent);
 finish();
 }else {
 Toast.makeText(LoginActivity.this,"account or password is invalid",Toast.LENGTH_SHORT).show();
 }
 } 
 }); 
 }
}
  • 使用findViewById方法分別獲取輸入框以及登錄按鈕的實(shí)例
  • 然后設(shè)置點(diǎn)擊事件:先判斷賬號(hào)和密碼對(duì)不對(duì),對(duì)了就是用intent實(shí)例進(jìn)入到主活動(dòng)中;錯(cuò)了就重新進(jìn)入登錄頁(yè)面,并且打印出一條提示語(yǔ)。
  • 接著改造一下主界面,當(dāng)然加上強(qiáng)制下線功能就行,不要其他花里胡哨的。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >

 <Button
 android:id="@+id/force_offline"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="Send force offline broadcast" />

</LinearLayout>
  • 非常簡(jiǎn)單,就是加了一個(gè)按鈕
  • 接下來(lái)修改主活動(dòng)的邏輯
package com.example.broadcastbestpractice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 Button forceOffline = (Button) findViewById(R.id.force_offline);
 forceOffline.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
 Intent intent = new Intent("com.example.broadcastbestpractice.FORCE_OFFLINE");
 sendBroadcast(intent);
 }
 });
 }
}
  • 在點(diǎn)擊事件里面,我們發(fā)送了com.example.broadcastbestpractice.FORCE_OFFLINE廣播,用于通知程序強(qiáng)制用戶下線。
  • 這說(shuō)明強(qiáng)制用戶下線的功能,應(yīng)該寫在接收器中,不寫在具體某個(gè)活動(dòng)中,這樣發(fā)出“下線”廣播的時(shí)候,就能完成下線操作了。
  • 接下來(lái)創(chuàng)建一個(gè)廣播接收器
package com.example.broadcastbestpractice;

import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.WindowManager;
import android.content.DialogInterface.OnClickListener;;

public class ForceOfflineReceiver extends BroadcastReceiver{
 @Override
 public void onReceive(final Context context,Intent intent) {
 AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
 dialogBuilder.setTitle("Warning");
 dialogBuilder.setMessage("You are forced to be offline,Please try to login again.");
 dialogBuilder.setCancelable(false);
 //下面這句改了
 dialogBuilder.setPositiveButton("OK", new OnClickListener() {
 @Override
 public void onClick(DialogInterface dialog,int which) {
 ActivityCollector.finishAll();//銷毀所有的活動(dòng)
 Intent intent = new Intent(context,LoginActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 context.startActivity(intent);//重新啟動(dòng)LoginActivity
 }
 });
 AlertDialog alertDialog = dialogBuilder.create();
 //需要設(shè)置AlertDialog的類型,保證廣播接收器中可以正常彈出
 alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
 alertDialog.show();
 }
}

25.1

三、源碼:

BroadcastBestPractice
https://github.com/ruigege66/Android/tree/master/BroadcastBestPractice

到此這篇關(guān)于Android實(shí)現(xiàn)強(qiáng)制下線功能的示例代碼的文章就介紹到這了,更多相關(guān)android 強(qiáng)制下線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • RecyclerView實(shí)現(xiàn)常見的列表菜單

    RecyclerView實(shí)現(xiàn)常見的列表菜單

    這篇文章主要為大家詳細(xì)介紹了用RecyclerView實(shí)現(xiàn)移動(dòng)應(yīng)用中常見的列表菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Monkeyrunner 常用按鍵總結(jié)

    Monkeyrunner 常用按鍵總結(jié)

    這篇文章主要介紹了Monkeyrunner 常用按鍵總結(jié)的相關(guān)資料,這里對(duì)Monkeyrunner 按鍵的功能進(jìn)行詳細(xì)說(shuō)明,需要的朋友可以參考下
    2016-11-11
  • Android Studio升級(jí)到3.0后遇到的坑

    Android Studio升級(jí)到3.0后遇到的坑

    自從谷歌發(fā)布Android Studio 3.0版本后,一直心向往之,終于抽時(shí)間做了下升級(jí)處理,現(xiàn)在把升級(jí)過程中遇到的一些問題以及解決方案分享給大家,希望對(duì)大家能給有事幫助
    2017-11-11
  • 微信小程序 bnner滾動(dòng)實(shí)例詳解

    微信小程序 bnner滾動(dòng)實(shí)例詳解

    這篇文章主要介紹了微信小程序 bnner滾動(dòng)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • kotlin協(xié)程之coroutineScope函數(shù)使用詳解

    kotlin協(xié)程之coroutineScope函數(shù)使用詳解

    這篇文章主要為大家介紹了kotlin協(xié)程之coroutineScope函數(shù)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Android仿微信@好友功能 輸入@跳轉(zhuǎn)、刪除整塊

    Android仿微信@好友功能 輸入@跳轉(zhuǎn)、刪除整塊

    這篇文章主要介紹了Android仿微信@好友功能 輸入@跳轉(zhuǎn)、刪除整塊,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-10-10
  • Android實(shí)現(xiàn)3D翻轉(zhuǎn)動(dòng)畫效果

    Android實(shí)現(xiàn)3D翻轉(zhuǎn)動(dòng)畫效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)3D翻轉(zhuǎn)動(dòng)畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android APK反編譯圖文教程

    Android APK反編譯圖文教程

    學(xué)會(huì)反編譯比較關(guān)鍵,也是我們美化必須掌握技術(shù),學(xué)會(huì)反編譯也是實(shí)現(xiàn)制作ROM的起步,ROM高手必然是反編譯高手這里有必要說(shuō)一下,教程只是給你一個(gè)動(dòng)手的那一個(gè)蹺板,教程不是萬(wàn)能的,給了你基礎(chǔ)與啟發(fā),最重要的是我們能夠自主的進(jìn)行創(chuàng)新與思考
    2016-04-04
  • kotlin中的行為組件及高級(jí)用法

    kotlin中的行為組件及高級(jí)用法

    Jetpack中的四大行為組件:WorkManager、DataBinding、Coroutines和Lifecycle,分別解決了后臺(tái)任務(wù)調(diào)度、數(shù)據(jù)驅(qū)動(dòng)UI、異步編程和資源管理等問題,通過實(shí)戰(zhàn)代碼展示了它們的具體用法和最佳實(shí)踐,本文介紹kotlin中的行為組件,感興趣的朋友一起看看吧
    2025-03-03
  • Android掛斷電話最新實(shí)現(xiàn)方法

    Android掛斷電話最新實(shí)現(xiàn)方法

    大家好,本篇文章主要講的是Android掛斷電話最新實(shí)現(xiàn)方法,感興趣的同學(xué)感快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02

最新評(píng)論

五台县| 资兴市| 武安市| 关岭| 绍兴县| 武宣县| 当雄县| 鸡东县| 江达县| 涿州市| 邵阳县| 漳平市| 山阳县| 西华县| 阿城市| 永年县| 岚皋县| 华池县| 秦安县| 惠水县| 河西区| 凌源市| 通州市| 谷城县| 濮阳县| 萝北县| 阿拉尔市| 双牌县| 文昌市| 太仓市| 珠海市| 察隅县| 吉首市| 枣强县| 诸暨市| 荥经县| 邓州市| 密山市| 炎陵县| 枞阳县| 大同县|