1. 程式人生 > >android 使用Service進行雙程序守護,防止程序被殺

android 使用Service進行雙程序守護,防止程序被殺

public class MyService extends Service {
    String msg;
    public MyService() {
        msg = "Msg from MyService";
    }

    @Override
    public IBinder onBind(Intent intent) {
        return new MyBinder();
    }

    public class MyBinder extends Binder{
        public String getMsg(){
            return msg;
        }
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Intent service = new Intent(this, OtherService.class);
        startService(service);
        bindService(service, sc, Context.BIND_IMPORTANT);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
        //設定為0,通知欄不可見。設定為1,通知欄可見
        startForeground(0, builder.build());

        //返回此引數可以在Service因系統資源緊張被殺死的時候嘗試重啟
        return START_STICKY;
    }

    private ServiceConnection sc = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            //由於配置之後OtherService不在同一執行緒,無法進行互動
//            OtherService.OtherBinder otherBinder = (OtherService.OtherBinder) service;
//            Toast.makeText(MyService.this, otherBinder.getMsg(), Toast.LENGTH_SHORT).show();
            Toast.makeText(getApplicationContext(),"繫結MyService",Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            // 連接出現了異常斷開了,OtherService被殺掉了
            Toast.makeText(getApplicationContext(),"OtherService掛了",Toast.LENGTH_SHORT).show();
            Intent service = new Intent(MyService.this, OtherService.class);
            startService(service);
            bindService(service, sc, Context.BIND_IMPORTANT);
        }
    };
}

相關推薦

android 使用Service進行程序守護防止程序

public class MyService extends Service { String msg; public MyService() { msg = "Msg from MyService"; } @Override public IBind

Node.js程序守護防止程式崩潰自動退出

最近用node在寫一個TCP Socket伺服器,但是客戶端異常斷開後,伺服器會報錯[Error: read ECONNRESET]錯誤,然後掛掉,上網查了相關文章,沒有好的方法,最好的就是對伺服器程式進行程序監控,如果程式退出,監控程式再重新啟動伺服器程式,進

Android程序守護讓APP在系統記憶體中常駐(一)

       其實我們開發者並不想讓自己做的應用變成流氓軟體,但是沒辦法, 你的老闆需要,你要不想讓你的應用常駐,那咱就常駐不了了。。。所以說,言歸正傳。。。       第一篇準備使用系統的服務保活。如果想看提高app的程序等級來實現應用保活,可以直接進行點選Androi

Android程序守護讓APP在系統記憶體中常駐(二)

      昨天晚上寫了用系統服務等方法來實現應用保活。今天寫一下用提高app的程序等級來實現應用保活。想看直接呼叫系統方法保活應用的可以點選Android程序守護,讓APP在系統記憶體中常駐(一)進行跳轉。       一:第一種實現思路,建立廣播接收者來監聽系統關屏亮屏

Android------實現圖片擊放大縮小左右滑動的多種方式

params getcount androi nullable per try out 多圖 tro 項目中常常有圖片瀏覽功能。像微信朋友圈圖片瀏覽,QQ空間照片瀏覽 的功能。 實現圖片雙擊放大,縮小,左右滑動等效果。 來看看我的效果圖,希望能滿足你的要求 前

Android程序守護、鬧鐘後臺殺死的研究

最近公司要求要做一個提醒功能,一說到提醒,那肯定就和鬧鐘差不多的意思,那麼肯定就要用到AlarmManager。 但是,我們知道,android系統很坑爹,不同的廠商對rom的定製,導致對程序的管理都

linux 程序守護監控並自動重啟

1、[下載](http://cr.yp.to/daemontools.html daemontools)daemontools安裝包 2、安裝 tar xvzf daemontools-0.76.tar.gz cd admin/daemontools-0.76 package/in

如何讓你的App永遠在後臺存活:對Android程序守護、鬧鐘後臺殺死的研究

相關閱讀: 公眾號:Java和Android架構 關注回覆:Android,iOS,PHP,js,HTML5,Python,機器學習 ,AI,大資料,Hadoop,c++,J2EE等關鍵字就能免費獲取學習資料視訊 最近公司要求要做一個提醒

如何直接開啟android系統的wifi設定頁面防止intent劫持

在android的app開發中,經常會遇到需要跳轉至系統設定頁面的需求。但是當你使用以下程式碼時: 如 Intent intent =  new Intent(Settings.ACTION_WIFI_SETTINGS);                  startAct

不開通零錢實現小程序提現程序提現PHP接口講解

app class php 訂閱號 nbc utils cdn 的區別 end 小程序實現提現有兩個解決方案:第一種最簡單:即調用聚分雲代發紅包API,小程序服務端請求代發紅包API會獲得紅包鏈接,然後小程序服務端把紅包鏈接生成二維碼圖片,在小程序中展示,讓用戶下載微信掃碼

修改SSH登陸埠防止vps攻擊

     博主前段時間購買了一個VPS,終於開始了科學上網的生活。但是呢,由於博主沒有修改SSH的連線埠,導致有大量的黑客對我的vps進行掃描。試圖暴力破解密碼,將博主的vps當做肉雞處理。為了防止題注的vps被不良分子當做肉雞進行跳轉攻擊。博主刻意把自己的vps的SS

C# 檔案正由另一程序使用程序無法訪問該檔案

C#不同執行緒或者程序對文讀寫時會出現這樣的問題,使用lock沒有用,使用下面的方法可以。 static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim(); LogWriteLock.EnterWriteLock()

程式設計師教你如何用命令開啟軟體盡顯高逼格防止軟體別人亂動

在我們日常電腦的使用中,我們把經常要用到的軟體快捷方式放在桌面上,方便我們使用,但有時小孩會使用我們的電腦,當你回到座位的時候突然發現,我的什麼檔案怎麼不見了,誰改了我的程式碼,這個軟體不是不讓你們動嗎。這時你可能就會想要把比較重要的軟體簡單隱藏起來,今天小編教你一招。以win7為例,選中我的電腦右

exec函式族vfork程序退出銷燬程序(殭屍程序 孤兒程序

參考文章 waitpid和wait https://www.cnblogs.com/LUO77/p/5804436.html https://www.cnblogs.com/13224ACMer/p/6390702.html https://blog.csdn.net/zhangxi

Vue專案中防止頁面縮放和放大

現在vue的腳手架生成專案之後我們會發現index.html頁面中。 在head標籤中,我們會看到meta標籤中有一條顯示是 <meta name="viewport" content="width=device-width,initial-sca

C/C++: linux下獲取程序ID程序ID

#include <iostream> #include <sys/types.h> #include <unistd.h> #include <stdio.

對get方式的引數如何添加簽名防止資料篡改或洩露

例如查詢使用者id為1的個人資訊,一般的URL為:http://www.mydomain.com/index.php?act=get_user_info&uid=1 這種情況下查詢該使用者的個人資訊是沒有問題的,當這個連結在沒有使用者登入的限制的狀態下也可以查詢顯

檢視程序pid殺死程序

使用linux作業系統,難免遇到一些軟體"卡殼"的問題,這時就需要使用linux下強大的kill命令來結束相關程序。這在linux系統下是極其容易的事情,你只需要kill xxx即可,這裡xxx代表與此軟體執行相關的程序PID號。     首先,我們需要使用linux下另外一個ps命令查詢與程序相關的PID

C++程序檢測發現程序路徑關閉程序(一)

#include "stdafx.h" #include <windows.h> #include "stdio.h" #include <tlhelp32.h> #include "Psapi.h" BOOL DosPathToNtPath(LP

webpack 打包優化的四種方法(多程序打包程序壓縮資源 CDN動態 polyfill)

如今,webpack 毫無疑問是前端構建領域裡最耀眼的一顆星,無論你前端走哪條路線,都需要有很強的webpack 知識。webpack 的基本用法這裡就不展開講了。主要探討一下如何提高 webpack 的打包速度。 這篇文章以 vue cli3.0+,webpack4.0+,nodejs10.0+ 這幾個版