日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android 本地廣播和強制下線功能的實現代碼

瀏覽:116日期:2022-09-23 13:42:05

一、使用本地廣播

1.本地廣播一個舉例

package com.example.broadcasttest2;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity { private IntentFilter intentFilter; private LocalReceiver localReceiver; private LocalBroadcastManager localBroadcastManager; private NetworkChangeReceiver networkChangeReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(); intentFilter.addAction('android.net.conn.CONNECTIVITY_CHANGE'); networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver,intentFilter); localBroadcastManager = LocalBroadcastManager.getInstance(this);//獲取實例 Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //下面這行代碼是用來全局廣播的// Intent intent = new Intent('com.example.broadcasttest.MY_BROADCAST'); //下面這行代碼是用來本地廣播的(也就是app內部傳遞廣播) Intent intent = new Intent('com.example.broadcasttest.LOCAL_BROADCAST'); localBroadcastManager.sendBroadcast(intent);//發送本地廣播 // sendBroadcast(intent); //我們關閉上面一行代碼,然后寫另一種方法sendOrderedBroadcast,發送有序廣播 sendOrderedBroadcast(intent,null); } }); intentFilter = new IntentFilter(); intentFilter.addAction('com.example.broadcasttest.LOCAL_BROACAST'); localReceiver = new LocalReceiver(); localBroadcastManager.registerReceiver(localReceiver,intentFilter);//注冊本地廣播監聽器 } @Override protected void onDestroy() { super.onDestroy();// unregisterReceiver(networkChangeReceiver); localBroadcastManager.unregisterRecerver(localReceiver); } class NetworkChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context,Intent intent) { ConnectivityManager connectionMananger = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectionMananger.getActiveNetworkInfo(); if(networkInfo != null && networkInfo.isAvailable()) { Toast.makeText(context, 'network is available', Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, 'network is unavailable', Toast.LENGTH_SHORT).show(); } } } class LocalReceiver extends BroadcastReceiver { @Override public void onReceive(Context context,Intent intent) { Toast.makeText(context,'received local broadcast',Toast.LENGTH_SHORT).show(); } }}

通過LocalBroadcastManager的getInstance()方法來獲取一個實例,注冊廣播是用的registerReceiver()方法,傳入的參數一個是localReceiver的內部實例,一個是IntentFilter實例。最后在onCreate方法中調用發送廣播的方法。最后我們在按鈕的點擊事件里面發送一條com.example.broadcasttest.LOCAL_BROADCAST廣播,然后在LocalReceiver里面去接收這條廣播。

注意點:本地廣播是無法通過靜態注冊的方式來接收的,其實這也完全可以理解,因為靜態注冊主要就是為了讓程序在未啟動的時候也能收到廣播,而發送本地廣播的時候,我們的程序就已經啟動了,因為也完全不需要使用靜態注冊的功能。

2.使用本地廣播的優勢

(1)程序內部傳遞,防止機密數據泄露;(2)其他程序無法將廣播發送到我們的程序內部,防止安全漏洞的隱患;(3)發送本地廣播更加高效。

二、實現強制下線功能

1.實現強制下線的邏輯

無論在我們在程序的哪個活動界面,一旦收到強制下線的廣播,就跳出來一個界面,必須點擊“確認“,然后直接跳轉到登錄界面。

2.首先創建一個類用于管理所有的活動

package com.example.broadcastbestpractice;import java.util.ArrayList;import java.util.List;import android.app.Activity;public class ActivityCollector { public static List<Activity> activities = new ArrayList<Activity>(); public static void addActivity(Activity activity) { activities.add(activity); } public static void removeActivity(Activity activity) { activities.remove(activity); } public static void finishAll() { for(Activity activity :activities) { if(!activity.isFinishing()) { activity.finish(); } } }}

3.創建一個基類BaseActivity作為所有活動的父類

package com.example.broadcastbestpractice;import android.app.Activity;import android.os.Bundle;public class BastActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override public void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); }}

4.接著需要建立一個登錄頁面的布局

<?xml version='1.0' encoding='utf-8'?><!-- android:shrinkColumns設置允許被收縮的列序號 android:strectColumns設置允許被拉伸的列序號 --><TableLLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:strectColumns = '1' > <TableRow> <TextView android:layout_height = 'wrap_content' android:text='Account:' /> <EditText android: android:layout_height='wrap_content' android:hint='Input your account' /> </TableRow> <TableRow> <TextView android:layout_height='wrap_content' android:text='Password:' /> <EditTest android: android:layout_height='wrap_content' android:inputType='textPassword' /> </TableRow> <TableRow> <Button android: android:layout_height='wrap_content' android:layout_span='2' android:text='Login' /> </TableRow></TableLayout>

后面的我們下次連載接著寫。

三、源碼:

BroadcastTest2BroadcastBestPracticehttps://github.com/ruigege66/Android/tree/master/BroadcastTest2https://github.com/ruigege66/Android/tree/master/BroadcastBestPractice

到此這篇關于Android 本地廣播和強制下線功能的實現代碼的文章就介紹到這了,更多相關Android 本地廣播和強制下線內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲三级毛片| 99视频精品全国免费| 久久国产精品成人免费观看的软件| 奇米亚洲欧美| 青青草国产成人99久久| 日韩精品导航| 日本免费在线视频不卡一不卡二| 首页欧美精品中文字幕| 日韩影院精彩在线| 日韩1区2区3区| 亚洲啊v在线| 鲁鲁在线中文| 成人羞羞在线观看网站| 精品三级久久| 久久精品免费一区二区三区 | 欧美另类综合| 国产精品腿扒开做爽爽爽挤奶网站| 中文一区在线| 欧美日本不卡| 欧美国产偷国产精品三区| 正在播放日韩精品| 激情五月综合| 午夜久久av| 久久一区欧美| 午夜欧美精品| 国产麻豆一区二区三区精品视频| 日韩欧美激情| 在线精品亚洲欧美日韩国产| 亚洲精品99| 国产极品久久久久久久久波多结野| 色一区二区三区四区| 国产精品三上| 国产伊人久久| 热久久久久久久| 97精品国产一区二区三区| 亚洲综合欧美| 91视频一区| 日本欧美一区| 99香蕉国产精品偷在线观看 | 国产精品magnet| 麻豆成全视频免费观看在线看| 99国产成+人+综合+亚洲欧美| 日韩国产在线一| 欧美精品一卡| 日韩av免费| 免费视频一区二区三区在线观看| 欧美日韩色图| 久久成人福利| 欧美一区免费| 中文在线日韩| 亚洲欧美日韩精品一区二区| 91欧美精品| 视频一区视频二区中文| 日韩视频网站在线观看| 欧美日韩 国产精品| 爽好多水快深点欧美视频| 国产在线|日韩| 国产99在线| 精品99久久| 国产精品啊v在线| 国产女优一区| 免费不卡中文字幕在线| 成人三级高清视频在线看| 欧美专区一区| 亚洲日本免费电影| 亚洲精品一区二区在线看| 国产美女亚洲精品7777| 亚洲色图网站| 日韩中文字幕区一区有砖一区| 精品国产乱码久久久| 97久久精品| 国产欧美午夜| 国产精品久久久久久久久免费高清 | 亚洲精品一级二级| www.九色在线| 欧美交a欧美精品喷水| 日韩午夜视频在线| 中文一区一区三区免费在线观 | 日韩精品久久久久久| 亚洲欧洲av| 久久国产视频网| 欧美激情网址| 首页国产精品| 成人影视亚洲图片在线| 久久精品国产99| 日韩精品不卡一区二区| 久久精品国产68国产精品亚洲| 99精品电影| 亚洲不卡视频| 91视频一区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲乱码一区| 精品国产三区在线| 亚洲天堂1区| 国产99精品| 久久久国产亚洲精品| 蜜臀91精品一区二区三区| 黄色网一区二区| 日本精品黄色| 男女男精品网站| 国产一区二区三区天码| 好吊一区二区三区| 国产精品天天看天天狠| 亚洲成a人片| 日韩黄色在线观看| 日韩美女一区二区三区在线观看| 蜜臀av国产精品久久久久| 日韩免费高清| 欧美一区二区三区久久精品| jiujiure精品视频播放| 久久国产生活片100| 亚洲精品小说| 中文字幕在线视频久| 免费成人av在线播放| 精品免费av在线| 欧美精品99| 亚洲精品欧美| 一级欧洲+日本+国产| 亚洲深夜视频| 精品午夜av| 日韩精品久久理论片| 99re国产精品| 91精品蜜臀一区二区三区在线| 日韩高清二区| 视频一区二区不卡| 美女亚洲一区| 欧美日韩在线二区| 一区二区三区四区日本视频| 激情欧美亚洲| 国产精品精品国产一区二区| 国产精品宾馆| 免费在线亚洲| 日本不卡一二三区黄网| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美精品九九| av不卡在线看| 久久高清免费| 欧美在线网站| 欧美极品中文字幕| 日韩电影免费在线观看| 国产精品福利在线观看播放| 国产va在线视频| 精品三级久久久| 麻豆成人综合网| 国产精品2023| 欧美aⅴ一区二区三区视频| 国产精品白丝久久av网站 | 免费观看在线色综合| 免费人成网站在线观看欧美高清| 成人亚洲一区二区| 久久国产直播| 亚洲成人精品| 一区在线视频观看| 蜜桃精品在线| 亚洲另类av| 国产毛片精品| 天堂√8在线中文| 亚洲精品极品少妇16p| 日本在线不卡视频| 久久亚州av| 黄色成人在线网址| 日韩动漫一区| 日韩免费av| 亚洲视频国产| 国产精品麻豆久久| 亚洲欧美视频一区二区三区| 日韩三级视频| 久久久精品五月天| 五月亚洲婷婷 | 欧美少妇精品| 日产欧产美韩系列久久99| 亚洲精品**中文毛片| 午夜在线视频观看日韩17c| 国产精品久久亚洲不卡| 老牛国产精品一区的观看方式| 97久久中文字幕| 免费精品国产的网站免费观看| 日韩中文字幕无砖| 99久久www免费| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 亚洲一区日韩| 亚洲风情在线资源| 国产亚洲电影| 国产亚洲欧洲| 成人久久一区| 在线看片国产福利你懂的| 久久精品999| 亚洲毛片在线免费| 久久国产日本精品| 不卡福利视频| 久久伊人亚洲| 国产精品香蕉| 国产午夜久久av| 777久久精品| 久久国产尿小便嘘嘘| 亚洲精品免费观看| 噜噜噜躁狠狠躁狠狠精品视频 | 久久视频国产| 成人羞羞在线观看网站| 丁香六月综合|