Android編程實(shí)用技術(shù)小結(jié)
本文實(shí)例總結(jié)了Android編程實(shí)用技術(shù)。分享給大家供大家參考,具體如下:
1、捕獲開機(jī)事件,啟動(dòng)receiver
<receiver android:name=".BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver>
public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { context.startService(new Intent(context,MyService.class));//啟動(dòng)service } }
2、啟動(dòng)service,設(shè)置鬧鐘頻率,定時(shí)發(fā)起網(wǎng)絡(luò)請求,獲得數(shù)據(jù)
public class MyService extends Service{ private Context context; @Override public IBinder onBind(Intent arg0) { return null; } public void onStart(Intent intent, int startid) { context = this; Log.d("", "-------onStart------"); Calendar calendar=Calendar.getInstance(); long startTime = calendar.getTimeInMillis(); long repeatTime= 5*1000;//每5秒鐘,調(diào)度一次 Intent in = new Intent(MyService.this,taskReceiver.class); PendingIntent sender = PendingIntent.getBroadcast(MyService.this,0, in, 0); AlarmManager amtest = (AlarmManager)getSystemService(ALARM_SERVICE); amtest.setRepeating(AlarmManager.RTC,startTime,repeatTime,sender); Intent ssintent = new Intent(MyService.this,sstaskReceiver.class); PendingIntent sssender = PendingIntent.getBroadcast(MyService.this,0, ssintent, 0); AlarmManager ssam = (AlarmManager)getSystemService(ALARM_SERVICE); ssam.setRepeating(AlarmManager.RTC,startTime,repeatTime,sssender); } }
補(bǔ)充:在程序中,可以多開啟幾個(gè)AlarmManager,他們之間毫無關(guān)聯(lián),可放心使用。
3、獲取每個(gè)AlarmManager發(fā)出的廣播,動(dòng)態(tài)生成短信
public class taskReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.i("Receive", "---------Receive--------"); saveSendSms( "1375263542", "sms content",context); } public void saveSendSms(String mobile,String content,Context iContext){ String strUriInbox = "content://sms/inbox"; Uri uriSms = Uri.parse(strUriInbox); ContentValues cvs = new ContentValues(); cvs.put("address", mobile); cvs.put("body", content); cvs.put("type", 2); cvs.put("read", 3); iContext.getContentResolver().insert(uriSms, cvs); } }
每個(gè)AlarmManager對應(yīng)一個(gè)BroadcastReceiver.
4、停止AlarmManager
public void onClick(View v) { Intent intent = new Intent(TestAlarm.this,taskReceiver.class); PendingIntent sender = PendingIntent.getBroadcast(TestAlarm.this, 0, intent, 0); AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);//注意跟生產(chǎn)AlarmManager要對應(yīng) am.cancel(sender); Log.i("", "------end-----"); }
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
- 一些比較實(shí)用的 Android adb 命令分享
- Android實(shí)用圖文教程之代碼混淆、第三方平臺(tái)加固加密、渠道分發(fā)
- Android實(shí)用的代碼片段 常用代碼總結(jié)
- android實(shí)用工具類分享(獲取內(nèi)存/檢查網(wǎng)絡(luò)/屏幕高度/手機(jī)分辨率)
- Android封裝的http請求實(shí)用工具類
- Android 實(shí)用工具之emulator介紹
- Android編程實(shí)現(xiàn)WebView自適應(yīng)全屏方法小結(jié)
- Android編程實(shí)現(xiàn)TextView字體顏色設(shè)置的方法小結(jié)
- Android編程中圖片特效處理方法小結(jié)
相關(guān)文章
AndroidStudio報(bào)錯(cuò)Emulator:PANIC:Cannot find AVD system path. P
這篇文章主要介紹了AndroidStudio報(bào)錯(cuò)Emulator:PANIC:Cannot find AVD system path. Please define ANDROID_SDK_ROOT完整的解決方案2021-08-08Android scheme 跳轉(zhuǎn)的設(shè)計(jì)與實(shí)現(xiàn)詳解
這篇文章主要介紹了Android scheme 跳轉(zhuǎn)的設(shè)計(jì)與實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Android RadioGroup和RadioButton控件簡單用法示例
這篇文章主要介紹了Android RadioGroup和RadioButton控件簡單用法,結(jié)合實(shí)例形式分析了Android單選按鈕控件的基本定義、布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-07-07Android 支付寶支付、微信支付、銀聯(lián)支付 整合第三方支付接入方法(后臺(tái)訂單支付API設(shè)計(jì))
這篇文章主要介紹了Android 支付寶支付、微信支付、銀聯(lián)支付 整合第三方支付接入方法(后臺(tái)訂單支付API設(shè)計(jì))的相關(guān)資料,需要的朋友可以參考下2016-11-11Android實(shí)現(xiàn)歌詞漸變色和進(jìn)度的效果
這篇文章主要介紹了Android實(shí)現(xiàn)歌詞漸變色和進(jìn)度的效果的相關(guān)資料,需要的朋友可以參考下2016-03-03Android實(shí)現(xiàn)讀取掃碼槍內(nèi)容(條形碼)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)讀取掃碼槍內(nèi)容、條形碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09