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

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

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

瀏覽:115日期: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久久,三上悠亚国产精品一区二区三区
中文字幕高清在线播放| 欧美一区二区三区久久精品| 在线视频免费在线观看一区二区| 国产麻豆一区| 日韩中文字幕视频网| 91久久亚洲| 麻豆中文一区二区| 中文一区一区三区免费在线观 | 亚洲一级少妇| 激情不卡一区二区三区视频在线| 综合国产视频| 韩日一区二区三区| 久久精品在线| 激情综合自拍| 欧美精品一区二区久久| 欧美日韩激情| 在线视频日韩| 美国三级日本三级久久99| 亚洲一区久久| 综合一区二区三区| 日韩高清在线不卡| 日韩高清成人在线| 久久精品999| 国产福利资源一区| 国产一区二区三区不卡视频网站 | 日韩精品视频中文字幕| 亚洲专区视频| 日韩中文字幕视频网| 亚洲精品福利| 7777精品| 久久精品国产免费| 日本欧美不卡| 视频一区二区三区在线| 久久精品国产亚洲aⅴ| 黄色免费成人| 麻豆视频一区二区| 欧美日中文字幕| 日韩va亚洲va欧美va久久| 中文字幕在线免费观看视频| 蜜臀a∨国产成人精品| 国产成人精选| 国产欧美精品| 欧美日韩国产一区二区三区不卡| 制服诱惑一区二区| 日韩激情一区二区| 国产精品一区二区精品视频观看| 国产精品任我爽爆在线播放| 国内精品美女在线观看| 日韩免费福利视频| 视频一区免费在线观看| 欧美日韩亚洲一区在线观看| 欧美国产视频| 99久久久久| 亚洲tv在线| 国内揄拍国内精品久久| 久久精品国产999大香线蕉 | 亚洲伊人影院| 久久国产直播| 国产欧美日韩在线一区二区| 麻豆91精品视频| 久久久久国产| 日韩精品视频在线看| 美女一区网站| 亚洲精品第一| 日韩成人精品一区二区| 亚洲精品91| 麻豆一区二区三区| 亚洲专区欧美专区| 久久99高清| 香蕉久久国产| 国产自产自拍视频在线观看| 蜜乳av另类精品一区二区| 国产精品www.| 午夜久久美女| 精品国产乱码久久久久久樱花| 国产精品88久久久久久| 国产日产高清欧美一区二区三区 | 国产在线日韩| 精品三级国产| 久久一区亚洲| 国产精品密蕾丝视频下载| 亚洲精品欧洲| 视频一区中文字幕精品| 欧美专区一区二区三区| 亚洲成人日韩| 好看不卡的中文字幕| 美女网站一区| 日韩国产欧美| 一区二区三区四区精品视频| 欧美黄色网页| 国产精品久久久一区二区| 久久国产精品99国产| 精品国产亚洲一区二区三区| 日韩精选在线| 亚洲免费影院| 国产99亚洲| 久久久久久久欧美精品| 成人综合一区| 国产精品中文字幕制服诱惑| 欧美专区18| 国产一区二区中文| 国产精品av久久久久久麻豆网| 亚州欧美在线| 日本特黄久久久高潮| 欧美私人啪啪vps| 日韩高清不卡一区二区| 午夜电影亚洲| 久久久人人人| av一区在线| 成人高清一区| 国产精品手机在线播放| 日韩美女国产精品| 一区二区电影在线观看| 国产一区导航| 9色国产精品| 一区久久精品| 午夜欧美精品| 亚洲视频播放| 国产亚洲亚洲| 国产精品日韩久久久| 秋霞影视一区二区三区| 中文字幕在线高清| 日韩理论视频| 久久久一二三| 亚洲国产一区二区在线观看 | 欧美日韩国产免费观看视频| 成人羞羞视频播放网站| 日韩一区二区在线免费| 久久久久久夜| 成人精品视频| 日韩av免费大片| 久久uomeier| 久久久久久美女精品| 1024精品一区二区三区| 欧美精品黄色| 中文字幕中文字幕精品| 日韩精品免费观看视频| 国产欧美一区二区色老头| 国产精品亚洲二区| 91免费精品| 蜜桃成人av| 中文精品电影| 国产欧美88| 国产成人精品免费视| 久草免费在线视频| 日韩在线观看不卡| 99视频精品| 婷婷精品在线| 国产精品黄色| 97精品在线| 午夜国产一区二区| 日韩三级视频| 精品美女久久| 99久久久久| 在线精品观看| 欧美国产不卡| 99久久精品网站| 亚洲精品系列| 九九99久久精品在免费线bt| 精品丝袜在线| 亚洲国产日韩欧美在线| 中文字幕亚洲精品乱码| 国产精品网址| 精品一区在线| 久久精品99国产国产精| 日韩精品电影| 亚洲一区二区三区中文字幕在线观看| 欧美另类中文字幕| 久久久久久久久久久妇女| 免费在线欧美视频| 久久亚洲国产精品尤物| 午夜影院欧美| 国产精品久久久久77777丨| 日本精品不卡| 日韩国产欧美在线播放| 91亚洲国产高清| 免费久久99精品国产| 精品欧美视频| 亚洲另类av| 亚洲黄色免费av| 四虎在线精品| 激情欧美一区| 精品三级国产| 亚洲日产国产精品| 日韩欧美一区二区三区免费看| 亚洲精品日韩久久| 久久伦理在线| 久久久久黄色| 亚洲欧美日本国产| 999久久久国产精品| 亚洲日产av中文字幕| 日韩电影免费在线观看| 国产亚洲一区| 在线免费观看亚洲| 国产99精品一区| 精品美女视频 | 久久久久久久久成人| 亚洲影院天堂中文av色| 激情自拍一区| 亚洲va中文在线播放免费|