android 啟動後執行服務

2021-06-19 10:30:49 字數 963 閱讀 7228

開機啟動服務的關鍵點是,當android啟動完畢後,android會廣播一次android.intent.action.boot_completed。如果想在啟動後執行自己的**,需要編寫乙個廣播的接收者,並且註冊接收者到這個廣播intent上。

這裡以android中使用定時任務**為例,將它的服務改為開機啟動。

首先,需要編寫乙個intent的receiver,比如smsservicebootreceiver:

package com.easymorse; 

import android.content.broadcastreceiver;

import android.content.context;

import android.content.intent;

public class smsservicebootreceiver extends broadcastreceiver

}

通過這個receiver,啟動smsservice。那麼怎麼讓這個receiver工作呢,需要把它註冊到android系統上,去監聽廣播的boot_completed intent。在androidmanifest.xml中:

<?xml version=」1.0″ encoding=」utf-8″?>

增加黑體字部分的內容即可。

這樣重新開機,服務在開機android系統啟動完畢後就會載入。再啟動activity繫結(binding)服務,就可以操作smsservice服務,如果activity解除繫結,也不會shutdown服務了。

是不是service會有乙個引用計數呢?當計數是0的時候就會shutdown。還要再找時間研究。

源**見:

android開機啟動服務

這是個很簡單的過程,這個不像pc機得開機啟動,要有精確的記憶體位址,這裡所謂的簡單是跟pc機得開機啟動相比。android系統的宗旨說的是,不要來找我,我會來找你。activity好像是應用程式的眼睛,用眼神與使用者交流而使用者則用手指頭告訴activity我想要什麼。broadcastreceiv...

springboot啟動後執行某些命令

多個類實現介面可以使用 order註解來定義執行順序 專案啟動完成了,因此可以注入spring管理的類 例項 component order 1 autowired private stringredistemplate stringredistemplate override stringredi...

Spring啟動後執行某些方法

在spring的web專案中,如果我們需要初始化一些資料到記憶體,可以在spring容器啟動之中初始化,也可以在spring容器啟動完成後進行初始化,今天給大家介紹的是在spring容器啟動之後進行初始化的方法。首先,你需要實現下面的介面 public override public void 需要...