中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Android5.0以上app進程保活的正確姿勢-創(chuàng)新互聯(lián)

我的原文: http://blog.csdn.net/brycegao321/article/details/52312030

成都創(chuàng)新互聯(lián)公司服務項目包括浮山網(wǎng)站建設、浮山網(wǎng)站制作、浮山網(wǎng)頁制作以及浮山網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,浮山網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到浮山省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

   有圖有真相, 親測錘子T2、華為Mate8手機殺掉進程后能自啟, 我設置的自啟時間間隔為500ms(僅僅是為了測試)。

                  Android5.0以上app進程?;畹恼_姿勢   Android5.0以上app進程?;畹恼_姿勢

          首先要明確保活的概念:

          1、非android核心進程(例如com.android.phone)都可以被干掉;

      2、?;畈⒉荒苷嬲谋WCapp進程不死, 而是能在被干掉后馬上啟動;

Android系統(tǒng)按照進程的優(yōu)先級分為:

1. 前臺進程(Forgroud process):   頂層activity(已執(zhí)行onResume); 有個Service,并綁定到跟用戶正在交互的activity;在Service里調用了startForground函數(shù);正在執(zhí)行 onReceive函數(shù)的BroadCastReceiver。

2. 可見進程(Visible process):  被對話框遮擋的activity, 執(zhí)行了onPause;   擁有綁定到Activity的Service, 但該Activity被遮擋了, 例如按Home鍵,并執(zhí)行了onStop。
3. 服務進程(Service process): 有正在運行的Service, 但是沒有1/2的特性。

4. 后臺進程(Background process)沒有正在運行的Service, 只有不可見的Activity, 即Activity執(zhí)行了onStop函數(shù)。

5. 空進程(Empty Process), 不含Android 4大組件的進程。

       按照Android的設計, app只能提高自己的進程優(yōu)先級, 降低被殺掉的概率。

      我們更關心的是進程被干掉后怎么拉起來, 有如下幾個方法:

 1、 注冊靜態(tài)BroadcastReceiver, 監(jiān)聽系統(tǒng)廣播;

 2、 啟動一個服務, 并覆蓋Service的onStartCommand函數(shù), 返回Service.START_STICKY。   用處是被gc回收后在以后某個時間被系統(tǒng)拉起來, 然并卵,   并不是我們想要的。

 3.  使用Native進程?;?, Android5.0以下好用, 在Android5.0以上就廢了, 所以不細說了。

 4. 使用JobSheduler機制保活,  上帝在關閉一扇門的時候(native進程?;顝U棄了),打開了一扇窗(JobSheduler替代了native進程方式)。

 5.  家族系app互拉, 例如百度旗下所有app, 啟動其中一個app時, 它會拉起百度旗下其他app進程。作法很流氓, 也是廠商和用戶深惡痛絕的。

以下是參考代碼, 只是為驗證進程能自啟, 所以寫的很簡單Android5.0以上app進程?;畹恼_姿勢

public class MyJobService extends JobService {    @Override    public void onCreate() {        super.onCreate();        startJobSheduler();    }    public void startJobSheduler() {        try {            int id = 1;            JobInfo.Builder builder = new JobInfo.Builder(id,                    new ComponentName(getPackageName(), MyJobService.class.getName() ));            builder.setPeriodic(500);  //間隔500毫秒調用onStartJob函數(shù), 500只是為了驗證            JobScheduler jobScheduler = (JobScheduler)this.getSystemService(Context.JOB_SCHEDULER_SERVICE);            int ret = jobScheduler.schedule(builder.build());        } catch (Exception ex) {
            ex.printStackTrace();        }
    }    @Override    public boolean onStartJob(JobParameters jobParameters) {
        Log.d("brycegao", "onStartJob alive");        return false;    }    @Override    public boolean onStopJob(JobParameters jobParameters) {
        Log.d("brycegao", "onStopJob alive");        return false;    }
}
<service android:name=".MyJobService"    android:permission="android.permission.BIND_JOB_SERVICE"/>

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:Android5.0以上app進程保活的正確姿勢-創(chuàng)新互聯(lián)
分享地址:http://www.rwnh.cn/article48/dcieep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、企業(yè)建站網(wǎng)站制作、網(wǎng)站建設小程序開發(fā)、移動網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
宜君县| 清徐县| 湛江市| 新宁县| 西青区| 抚远县| 新绛县| 新河县| 梁平县| 钦州市| 渭源县| 犍为县| 邢台县| 建德市| 台安县| 龙游县| 莱西市| 佳木斯市| 秀山| 榆社县| 开阳县| 兖州市| 东明县| 新绛县| 巴彦县| 芜湖市| 纳雍县| 洛阳市| 罗定市| 庐江县| 叶城县| 麻江县| 平遥县| 屯留县| 石渠县| 班玛县| 都兰县| 监利县| 夏河县| 马边| 阜阳市|