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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2703|回復: 0
打印 上一主題 下一主題
收起左側

Android中“不要臉”的Service

[復制鏈接]
跳轉到指定樓層
樓主
ID:90014 發表于 2015-9-14 13:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
     Service作為Android中的四大組件之一,經常用他處理一些持續性的、不需要UI的事件,F如今大多數程序都會有一個或多個不要臉的Service,所謂不要臉就是你剛剛強制關閉他,沒幾秒他又屁顛屁顛的自己活過來了。。。對于這種Kill不掉的Service讓人惱怒。因為他又費電又費流量。但是他也有自己的好處、確保一些時時提醒或是其他的功能。

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

    1、利用系統廣播(如開機、屏幕喚醒)觸發自己的Server或其他你想干的事情。
    2、利用定時任務每隔短時間觸發啟動事件

    先說第一種:
    首先要創建一個廣播監聽(繼承BroadcastReceiver基類),在onReceive方法中啟動(我以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);
}
}
         當然也可以判斷接收到的廣播類型并作出相應的相應,如下:
                if (Intent.ACTION_BOOT_COMPLETED.equals(arg1.getAction())) {
System.out.println("手機開機了...bootComplete!");
} else if (Intent.ACTION_PACKAGE_ADDED.equals(arg1.getAction())) {
System.out.println("新安裝了應用程序....pakageAdded!");
} else if (Intent.ACTION_PACKAGE_REMOVED.equals(arg1.getAction())) {
System.out.println("應用程序被卸載了....pakageRemoved!");
} else if (Intent.ACTION_USER_PRESENT.equals(arg1.getAction())) {
System.out.println("手機被喚醒了.....userPresent");
}
     其次在清單文件(AndroidManifest.xml)中注冊廣播
        <receiver android:>
            <intent-filter>
                <action android: />
                <category android: />
            </intent-filter>
        </receiver>

    然后說第二種 :定時啟動服務,這個需要用到
AlarmManager與PendingIntent,這兩個定時任務類。即使是當前Activity被殺死了也是可以執行的。
    當Server第一次啟動的時候會觸發onCreate,故在此方法中寫定時觸發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后啟動Intent

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

super.onCreate();
}




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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区日韩 | 在线免费看毛片 | 中文在线一区二区 | 91精品国产91久久久久久丝袜 | 日日操av| 免费国产黄网站在线观看视频 | 中文字幕乱码一区二区三区 | 久久亚洲一区二区 | 国产电影一区二区三区爱妃记 | 天天成人综合网 | 国产在线资源 | 国产精品夜夜春夜夜爽久久电影 | 亚洲综合无码一区二区 | 黄色网页在线 | 欧美一区视频 | 91国产精品在线 | 中文字字幕一区二区三区四区五区 | 99久久中文字幕三级久久日本 | 精品一区二区三区在线视频 | 日韩久久久久久久久久久 | 91精品国产综合久久香蕉922 | 久久免费观看视频 | 久久精品一区二区 | 日韩精品免费在线 | 精品国产91 | 成人精品一区二区三区四区 | 亚洲福利在线视频 | 国产成人午夜高潮毛片 | 国产一区二区三区精品久久久 | 日韩视频中文字幕 | 91成人在线视频 | 超碰导航| 久久中文字幕视频 | 日韩精品视频在线播放 | 午夜精品三区 | 免费观看一级毛片 | 999久久久久久久久6666 | 91精品国产综合久久久亚洲 | 成人高潮片免费视频欧美 | 99久久久久久| 国产精品欧美一区二区三区不卡 |