久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2840|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

Android中“不要臉”的Service

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90014 發(fā)表于 2015-9-14 13:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
     Service作為Android中的四大組件之一,經(jīng)常用他處理一些持續(xù)性的、不需要UI的事件。現(xiàn)如今大多數(shù)程序都會(huì)有一個(gè)或多個(gè)不要臉的Service,所謂不要臉就是你剛剛強(qiáng)制關(guān)閉他,沒(méi)幾秒他又屁顛屁顛的自己活過(guò)來(lái)了。。。對(duì)于這種Kill不掉的Service讓人惱怒。因?yàn)樗仲M(fèi)電又費(fèi)流量。但是他也有自己的好處、確保一些時(shí)時(shí)提醒或是其他的功能。

    制作一個(gè)簡(jiǎn)單的“不要臉”的Service有兩種思路。其實(shí)都差不多的了。。。(參照的是CSDN大神以及其他人的源

    1、利用系統(tǒng)廣播(如開(kāi)機(jī)、屏幕喚醒)觸發(fā)自己的Server或其他你想干的事情。
    2、利用定時(shí)任務(wù)每隔短時(shí)間觸發(fā)啟動(dòng)事件

    先說(shuō)第一種:
    首先要?jiǎng)?chuàng)建一個(gè)廣播監(jiān)聽(tīng)(繼承BroadcastReceiver基類),在onReceive方法中啟動(dòng)(我以Server為例)
       @Overridepublic void onReceive(Context context, Intent intent)
{
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))
{
Intent startServiceIntent = new Intent(context, MyService.class);
startServiceIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(startServiceIntent);
}
}
         當(dāng)然也可以判斷接收到的廣播類型并作出相應(yīng)的相應(yīng),如下:
                if (Intent.ACTION_BOOT_COMPLETED.equals(arg1.getAction())) {
System.out.println("手機(jī)開(kāi)機(jī)了...bootComplete!");
} else if (Intent.ACTION_PACKAGE_ADDED.equals(arg1.getAction())) {
System.out.println("新安裝了應(yīng)用程序....pakageAdded!");
} else if (Intent.ACTION_PACKAGE_REMOVED.equals(arg1.getAction())) {
System.out.println("應(yīng)用程序被卸載了....pakageRemoved!");
} else if (Intent.ACTION_USER_PRESENT.equals(arg1.getAction())) {
System.out.println("手機(jī)被喚醒了.....userPresent");
}
     其次在清單文件(AndroidManifest.xml)中注冊(cè)廣播
        <receiver android:>
            <intent-filter>
                <action android: />
                <category android: />
            </intent-filter>
        </receiver>

    然后說(shuō)第二種 :定時(shí)啟動(dòng)服務(wù),這個(gè)需要用到
AlarmManager與PendingIntent,這兩個(gè)定時(shí)任務(wù)類。即使是當(dāng)前Activity被殺死了也是可以執(zhí)行的。
    當(dāng)Server第一次啟動(dòng)的時(shí)候會(huì)觸發(fā)onCreate,故在此方法中寫(xiě)定時(shí)觸發(fā)Server就可以了
        
AlarmManager mAlarmManager = null;
        PendingIntent mPendingIntent = null;


@Override
public void onCreate()
{
//start the service through alarm repeatly
        Intent intent = new Intent(getApplicationContext(), MyService.class);        
mAlarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
mPendingIntent = PendingIntent.getService(this, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
long now = System.currentTimeMillis();
                // 60S后啟動(dòng)Intent

mAlarmManager.setInexactRepeating(AlarmManager.RTC, now, 6000, mPendingIntent);

super.onCreate();
}




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷丁香综合网 | www.激情.com| 四虎影视免费观看 | 一区二区三区在线 | av一区二区三区四区 | 日韩精品在线一区 | 久久国产精品亚洲 | 在线视频一区二区 | 福利电影在线 | 亚洲一区国产精品 | 久久亚洲欧美日韩精品专区 | 一区二区三区精品 | 久久新| 国产成人在线一区 | 国户精品久久久久久久久久久不卡 | 久久中文字幕电影 | 日韩在线国产精品 | 国产一区二区小视频 | 精品久久香蕉国产线看观看亚洲 | 久久里面有精品 | 天天综合久久 | 亚洲精品一区二区三区蜜桃久 | 激情久久av一区av二区av三区 | 国产精品国产自产拍高清 | 亚洲一区国产精品 | 久久久精品一区二区 | 国产免费一区二区 | 91视频久久 | 久热电影| 伦理午夜电影免费观看 | 国产真实乱对白精彩久久小说 | 黄色成人免费看 | 亚洲精品乱码久久久久久蜜桃91 | 成人亚洲一区 | av在线免费网站 | 国外成人在线视频网站 | 日韩成人免费视频 | 成人羞羞国产免费视频 | 在线成人www免费观看视频 | 国产成人精品a视频一区www | 精品国产一区二区三区日日嗨 |