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

Android實現(xiàn)靜態(tài)廣播監(jiān)聽器的方法

 更新時間:2015年07月14日 16:55:59   作者:鑒客  
這篇文章主要介紹了Android實現(xiàn)靜態(tài)廣播監(jiān)聽器的方法,涉及Android的廣播機制與記錄監(jiān)聽廣播信息的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Android實現(xiàn)靜態(tài)廣播監(jiān)聽器的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

package lab.sodino.broadcastaction;
import lab.sodino.util.DatabaseOpenHelper;
import lab.sodino.util.SodinoOut;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.ContentObserver;
import android.database.Cursor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
/**
 * 本例子將記錄可靜態(tài)注冊的廣播被監(jiān)聽到的頻度。<br/>
 * 1.建立一表{ACTION_NAME廣播名稱,LAST_TIME最近一次發(fā)生時間,COUNT總共記錄到的次數(shù)}<br/>
 * 2.在ActionReceiver中監(jiān)聽廣播,并記錄。 <br/>
 * 3.在DBContentProvider中更新數(shù)據(jù)庫記錄<br/>
 * 4.在BroadcastActionRecordAct.ActionDBObserver中監(jiān)聽數(shù)據(jù)庫的變化,
 * 并使用Handler機制將最新情況顯示在txtInfo上。<br/>
 * 5.DatabaseOpenHelper將實現(xiàn)基本的數(shù)據(jù)庫操作。
 * 
 * @author Sodino
 */
public class BroadcastActionRecordAct extends Activity implements
  Button.OnClickListener {
 private TextView txtInfo;
 private DatabaseOpenHelper dbHelper;
 private Button btnRefresh;
 /** clear功能未完善。 */
 private Button btnClear;
 private Handler handler = new Handler() {
  public void handleMessage(Message msg) {
   String info = (String) msg.obj;
   txtInfo.setText(info);
  }
 };
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  LayoutParams lpPC = new LayoutParams(LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT);
  LayoutParams lpCC = new LayoutParams(LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT);
  btnRefresh = new Button(this);
  btnRefresh.setLayoutParams(lpCC);
  btnRefresh.setText("Refresh");
  btnRefresh.setOnClickListener(this);
  btnClear = new Button(this);
  btnClear.setLayoutParams(lpCC);
  btnClear.setText("ClearTable");
  btnClear.setOnClickListener(this);
  LinearLayout subLayout = new LinearLayout(this);
  subLayout.setLayoutParams(lpPC);
  subLayout.setOrientation(LinearLayout.HORIZONTAL);
  subLayout.addView(btnRefresh);
  subLayout.addView(btnClear);
  txtInfo = new TextView(this);
  txtInfo.setLayoutParams(lpPC);
  txtInfo.setTextColor(0xff0000ff);
  txtInfo.setBackgroundColor(0xffffffff);
  txtInfo.setText("Starting...");
  txtInfo.setTextSize(15);
  ScrollView scrollView = new ScrollView(this);
  scrollView.setLayoutParams(lpPC);
  scrollView.addView(txtInfo);
  LinearLayout mainLayout = new LinearLayout(this);
  mainLayout.setLayoutParams(lpPC);
  mainLayout.setOrientation(LinearLayout.VERTICAL);
  mainLayout.addView(subLayout);
  mainLayout.addView(scrollView);
  setContentView(mainLayout);
  dbHelper = new DatabaseOpenHelper(this);
  ContentResolver contentResolver = getContentResolver();
  contentResolver.registerContentObserver(DBContentProvider.CONTENT_URI,
    false, new ActionDBObserver(handler));
 }
 public void onClick(View view) {
  if (view == btnRefresh) {
   refreshRecord();
  } else if (view == btnClear) {
   clearRecord();
  }
 }
 public void refreshRecord() {
  dbHelper.openReadableDatabase();
  String info = dbHelper.getAllOrderedList(DatabaseOpenHelper.DESC);
  dbHelper.close();
  if (info != null) {
   txtInfo.setText(info);
  } else {
   txtInfo.setText("<NULL/>");
  }
  dbHelper.close();
 }
 public void clearRecord() {
  dbHelper.openWritableDatabase();
  dbHelper.clearRecord();
  dbHelper.close();
 }
 private class ActionDBObserver extends ContentObserver {
  private Handler handler;
  public ActionDBObserver(Handler handler) {
   super(handler);
   this.handler = handler;
  }
  public void onChange(boolean selfChange) {
   super.onChange(selfChange);
   String[] projection = { "ACTION_NAME", "LAST_TIME", "COUNT" };
   // String selection = "select * from ActionTable";
   String sortOrder = "COUNT DESC";
   // dbHelper.openReadableDatabase();
   // Cursor cursor = dbHelper.query(projection, null, null,
   // sortOrder);
   Cursor cursor = managedQuery(DBContentProvider.CONTENT_URI,
     projection, null, null, sortOrder);
   String info = "";
   String line = "";
   int actionIdx = 0;
   int timeIdx = 1;
   int countIdx = 2;
   while (cursor.moveToNext()) {
    line += cursor.getString(actionIdx) + " ";
    line += cursor.getString(timeIdx) + " ";
    line += cursor.getString(countIdx) + "/n";
    info += line;
    line = "";
   }
   Message msg = new Message();
   msg.obj = info;
   handler.sendMessage(msg);
   cursor.close();
   // dbHelper.close();
   SodinoOut.out("Database does changed!!!");
  }
  public boolean deliverSelfNotifications() {
   return super.deliverSelfNotifications();
  }
 }
}

希望本文所述對大家的Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android的日志系統(tǒng)分層與logcat使用

    Android的日志系統(tǒng)分層與logcat使用

    今天小編就為大家分享一篇關(guān)于Android的日志系統(tǒng)分層與logcat使用的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Android給布局、控件加陰影效果的示例代碼

    Android給布局、控件加陰影效果的示例代碼

    本篇文章主要介紹了Android給布局、控件加陰影效果的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Android利用POI實現(xiàn)將圖片插入到Excel

    Android利用POI實現(xiàn)將圖片插入到Excel

    這篇文章主要為大家詳細介紹了Android如何利用POI實現(xiàn)將圖片插入到Excel,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Android MediaPlayer 音頻倍速播放 調(diào)整播放速度問題

    Android MediaPlayer 音頻倍速播放 調(diào)整播放速度問題

    這篇文章主要介紹了Android MediaPlayer 音頻倍速播放,調(diào)整播放速度,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Android高仿微信對話列表滑動刪除效果

    Android高仿微信對話列表滑動刪除效果

    這篇文章主要為大家詳細介紹了Android高仿微信對話列表滑動刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 安卓(Android)開發(fā)之統(tǒng)計App啟動時間

    安卓(Android)開發(fā)之統(tǒng)計App啟動時間

    當大家要改善APP啟動速度優(yōu)化的時候,首先要知道App的啟動時間,那么改如何統(tǒng)計時間呢,下面我們一起來看看。
    2016-08-08
  • Android實現(xiàn)屏幕錄制功能

    Android實現(xiàn)屏幕錄制功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)屏幕錄制功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Android之RecycleView實現(xiàn)指定范圍的拖動效果

    Android之RecycleView實現(xiàn)指定范圍的拖動效果

    這篇文章主要介紹了Android之RecycleView實現(xiàn)指定范圍的拖動效果的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Android圖片實現(xiàn)壓縮處理的實例代碼

    Android圖片實現(xiàn)壓縮處理的實例代碼

    本篇文章主要介紹了Android圖片實現(xiàn)壓縮處理的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Android中Notification用法實例總結(jié)

    Android中Notification用法實例總結(jié)

    這篇文章主要介紹了Android中Notification用法,以實例形式較為詳細的分析并總結(jié)了Notification的功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論

富平县| 成武县| 三穗县| 新蔡县| 建湖县| 新津县| 大冶市| 滦南县| 泽州县| 天柱县| 鲁甸县| 芒康县| 蓬溪县| 襄樊市| 黔南| 玛曲县| 金寨县| 南京市| 竹山县| 云安县| 扎鲁特旗| 宁德市| 金华市| 藁城市| 南宁市| 彝良县| 景宁| 门头沟区| 多伦县| 兴海县| 法库县| 衡东县| 满洲里市| 浮山县| 桓台县| 色达县| 武鸣县| 禄劝| 铜梁县| 茶陵县| 乐东|