Android連載26-註冊所有活動以及展示成果

来源:https://www.cnblogs.com/ruigege0000/archive/2020/07/20/13342174.html
-Advertisement-
Play Games

一、緊接連載25的內容 解釋ForceOfflineReceiver類 使用AlertDialog.Builder來構建一個對話框,註意裡面有一個成員方法setCancelabel()將設置為不可以取消,否則一點擊Back鍵,又可以使用程式了,這就是導致了兩地登錄,是不符合我們的規定的。 使用set ...


一、緊接連載25的內容

  • 解釋ForceOfflineReceiver類
  • 使用AlertDialog.Builder來構建一個對話框,註意裡面有一個成員方法setCancelabel()將設置為不可以取消,否則一點擊Back鍵,又可以使用程式了,這就是導致了兩地登錄,是不符合我們的規定的。
  • 使用setPositiveButton()方法來給對話框註冊確定按鈕,當用戶點擊了確定按鈕就會調用ActivityyCollectorfinishAll()方法銷毀所有的活動,並且重新啟動登錄頁面這個活動。
  • 廣播接收器里啟動活動的,因此一定要給Intent加入FLAG_ACTIVITY_NEW_TASK這個標誌。最後還是需要把對話框的類型設置為TYPE_SYSTEM_ALERT,不然它將無法在廣播接收器里彈出。
  • 強制下顯得邏輯就算寫完了,下麵我們在AndroidManifest.xml文件中進行配置。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.broadcastbestpractice"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".LoginActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter> 
        </activity>
        
        <activity
            android:name=".MainActivity" >
        </activity>
        
        <receiver android:name=".ForceOfflineReceiver" >
            <intent-filter>
                <action android:name="com.example.broadcastbestpractice.FORCE_OFFLINE" />
            </intent-filter>
        </receiver>
        
    </application>
</manifest>
  • 首先要在ForceOfflineReceiver里彈出一個系統級別的對話框,因此必須要聲明android.permission.SYSTEM_ALERT_WINDOW許可權,然後對LoginActivity進行註冊,並且把它設置為主活動,因此肯定不能讓用戶啟動程式就進入MainAcitivity吧。
  • 最後再對ForceOfflineReceiver進行註冊,並指定它接收com.example.broadcastbestpractice.FORCE_OFFLINE這條廣播。
  • 最後我們把我們寫好的程式運行以下: 26.1 26.2 26.3 26.4
  • 可以看出我們登錄了之後(賬號:admin,密碼:12345)之後,然後點擊按鈕,就會向app內部發送強制下線廣播,彈出最後一張圖片所示的提示,只有一個按鈕“確定”,點擊之後會直接回到登錄頁面。

二、源碼:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • NAME ls -- list directory contents 列出目錄下的所有內容,預設是當前目錄。 SYNOPSIS ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...] DESCRIPTION 選項比較多,下麵是一些常用的: -A ...
  • 最近在進行開發的時候,發現之前的sogou拼音會出現亂碼;就像下麵這樣:(圖片來源自網路) 為瞭解決,這個問題,網友找到很多方法;但都是臨時解決。根本原因應該是軟體的bug。安裝google輸入法,可以繞開上述問題,節約折騰時間; 安裝方法: apt-get install fcitx sudo a ...
  • 在伺服器日常維護過程中經常需要傳輸文件,一般可以用fileZilla工具。但如果文件比較大,例如GB級別的,傳輸效率就比較慢,此時可以創建共用文件夾。 安裝環境:centos7 首先檢查是否已安裝samba,如果有安裝或有samba組件,最好先卸載再安裝: rpm -qa |grep samba 確 ...
  • 最近使用goland 和 clion 進行開發時;發現不能使用中文輸入法;就是很尷尬; 通過搜索教程,我使用的時sogou輸入法,使用的時fcitx 框架;需要配置環境變數; 這時候,我們需要在啟動腳本裡加入: export XMODIFIERS="@im=fcitx" export GTK_IM_ ...
  • 目前CSDN,博客園,簡書同步發表中,更多精彩歡迎訪問我的gitee pages MapReduce精通(一) MapReduce入門 MapReduce定義 MapReduce優缺點 優點 缺點 MapReduce核心思想 總結:分析WordCount數據流走向深入理解MapReduce核心思想。 ...
  • 有些時候想直接從資料庫查詢數據,並導出,但一些類型或狀態存儲的是01等數字,你想顯示對應的文字,這個時候就可以使用case...when語句了。 結構 case...when...then...when...then...else...end 示例 SELECT id,title,CASE type ...
  • FROM_UNIXTIME FROM_UNIXTIME(unix_timestamp[,format]) 將時間戳轉換成日期時間表示。如'YYYY-MM-DD hh:mm:ss' 或 YYYYMMDDhhmmss NOW NOW([fsp]) 返回當前時間的日期時間表示,如'YYYY-MM-DD h ...
  • 按照要求,每個取top 20,既然是隨機的取,那麼就SQL Server Order by newid()就是了,然後把所有數據union起來就得了。所以我立即給出了答案: select top 20 * from xxx where type=1 order by newid() union se ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...