android服務重啟
A. Android系統關機或幾種方式重啟
近期上市的三星手機只需長按電源鍵兩秒鍾,在彈出的設備選項中,選擇重啟即可(註:該功能為系統默認,無法關閉)。
若手機出現死機或卡機情況需要快速重啟機器,請操作:同時按住電源鍵和下音量鍵7秒以上重啟設備;若是可拆卸電池手機,長按電源鍵8-10秒重啟機器。
由於無法確認准確的型號信息,無法針對性的回答,如果需要手機使用說明,可以下載手機用戶手冊進行學習,請按以下方法操作
1.登陸【三星官網】,在右上角搜索框中輸入型號進行搜索。
2.點擊「產品」中的具體型號進入產品頁面-服務支持-用戶手冊-點擊下載即可。
註:僅部分型號支持下載用戶手冊。
B. 安卓service關閉後怎麼自動重啟
首先申明service關閉有兩種情況:
1、程序進入後台,系統可能會銷毀應用,可以理解為android端監聽推送消息的服務在啟動後是一直在後台運行的,但是當內存不足時,或者第三方應用清理內存時會殺死後台服務,此時該服務需要自動重啟。
該問題只需要在推送服務的onStartCommand方法返回類型設置成START_STICKY,官方文檔對此的解釋是:public static final int START_STICKY = 1;
大致意思是,在服務被系統殺死時會重新被創建,onStartCommand方法會被調用,但是需要注意的是,在調用onStartCommand時傳入的intent值可能為空,如果該方法中會用到該參數需要特別注意。
設置該參數可以解決第三方應用在清理內存時或者內存不足時殺掉推送服務之後重啟推送服務。
2、服務被用戶在應用管理-》正在運行中點擊「停止」銷毀該服務,服務不能重啟。
當用戶執行該操作時,服務中的onDestory方法被調用。所以我們可以在onDestory方法中再次啟動服務。但是此方案不能解決用戶在應用管理-》已下載中,強行停止該應用程序時服務被關閉後重啟,對比騰訊新聞,同等條件下,該問題也存在,即不能重啟服務。
C. android怎麼實現進程不被殺死或殺死後自動重啟
android實現進程不被殺死或殺死後自動重啟的方法為:
1、service +broadcast 可以實現服務不被殺死,就是當service走ondestory的時候,發送一個自定義的廣播,當收到廣播的時候,重新啟動service;
2、至於開機啟動服務的話,得查下開機啟動的方法,其實也很簡單,開機的時候會有很多廣播(包括開機啟動廣播),可以自己寫個廣播接收器,收到廣播後啟動服務程序(備註:以前我實現開機啟動的時候,貌似把應用裝到內存才有效,裝到sd卡的話一直沒用。)
D. Android手機無限重啟怎麼辦 Android手機重啟原因分析
1,先關機,然後同時按住【音量+】+【電源鍵】幾秒後,進入Recovey模式,執行雙清(在Recovery界面,選擇Wipe data/factory reset(擦除數據區)和Wipe cache partition(擦除cache區))操作。
2,如果上述處理後,還是不能使用,建議到官網上下載ROM和刷機程序,嘗試刷機。
3,如果上述方法無效或無法開機,建議將手機送到官方售後服務中心,由工程師幫助檢查處理。
E. 為什麼Android應用異常後會自動重啟
1.Android是一種以Linux與JAVA為基礎的開放源代碼操作系統,主要使用於便攜設備。中國大陸地區較多人使用「安卓」。Android操作系統最初由Andy Rubin開發,被谷歌收購後則由Google公司和開放手機聯盟領導及開發,主要支持手機與平板。
Android本身是一個許可權分立的操作系統。在這類操作系統中,每個應用都以唯一的一個系統識別身份運行(Linux用戶ID與群組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。
2.Android應用異常後會自動重啟是Android應用異常後的安全警報!
所以你是用Android手機時偶爾會因為某些異常導致正在使用的應用出現異常並強制關閉並重啟,
3,解決此類問題你需要捕獲出現的異常並做處理。這些在你手機的設置中就可進行設置,主動權在你,在Java中有兩類異常,分別是Error和RuntimeException,前者是不需要我們去處理的,我們處理的往往是後者。那麼如何捕獲線程在運行時的異常呢,我們可以使用自定義類實現
Thread.UncaughtExceptionHandler 介面並復寫uncaughtException(Thread thread, Throwable ex)方法來實現對運行時線程進行異常處理。在Android中我們可以實現自己的Application類,然後實現 UncaughtExceptionHandler介面,並在uncaughtException方法中處理異常,這里我們關閉App並啟動我們需要的Activity,下面看代碼:
public class MyApplication extends Application implements
Thread.UncaughtExceptionHandler {
@Override
public void onCreate() {
super.onCreate();
//設置Thread Exception Handler
Thread.(this);
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
System.out.println("uncaughtException");
System.exit(0);
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
最後需要在Manifest中配置Application的標簽android:name=".MyApplication",讓整個應用程序使用我們自定義的Application類,這樣就實現了當應用遇到崩潰異常時重啟應用的效果。
我們在任意一個Activity中主動拋出下面異常,就會發現應用遇到異常後重啟了,如果不處理的話,應用在遇到異常後就關閉了。
1.我們需要首先收集產生崩潰的手機信息,因為Android的樣機種類繁多,很可能某些特定機型下會產生莫名的bug。
2.將手機的信息和崩潰信息寫入文件系統中。這樣方便後續處理。
3.崩潰的應用需要可以自動重啟。重啟的頁面設置成反饋頁面,詢問 用戶是否需要上傳崩潰報告。
4.用戶同意後,即將2中寫入的崩潰信息文件發送到自己的伺服器。
F. android中當Service在運行時怎麼重啟Service
只需要重新startService即可重新調用service的onStart()。
Service是在一段不定的時間運行在後台,不和用戶交互應用組件。每個Service必須在manifest中 通過<service>來聲明。可以通過contect.startservice和contect.bindserverice來啟動。
Service和其他的應用組件一樣,運行在進程的主線程中。這就是說如果service需要很多耗時或者阻塞的操作,需要在其子線程中實現。
service的兩種模式(startService()/bindService() :
1.本地服務 Local Service 用於應用程序內部。
它可以啟動並運行,直至有人停止了它或它自己停止。在這種方式下,它以調用Context.startService()啟動,而以調用Context.stopService()結束。它可以調用Service.stopSelf() 或 Service.stopSelfResult()來自己停止。不論調用了多少次startService()方法,你只需要調用一次stopService()來停止服務。
用於實現應用程序自己的一些耗時任務,比如查詢升級信息,並不佔用應用程序比如Activity所屬線程,而是單開線程後台執行,這樣用戶體驗比較好。
2.遠程服務 Remote Service 用於android系統內部的應用程序之間。
它可以通過自己定義並暴露出來的介面進行程序操作。客戶端建立一個到服務對象的連接,並通過那個連接來調用服務。連接以調用Context.bindService()方法建立,以調用 Context.unbindService()關閉。多個客戶端可以綁定至同一個服務。如果服務此時還沒有載入,bindService()會先載入它。
G. android 已經啟動了服務,為什麼後台顯示重新啟動中
我想有這幾種可能:
1、程序本身把服務重啟了
2、系統因為資源緊張把服務重新啟動了,這種情況我在三星Galaxy S4上遇到過,會把人搞瘋
H. APP 控制安卓自動重啟手機
1、AutoStarter。此APP是一款專門為安卓手機用戶們准備的自定義手機開機自啟動服務管理軟體。
2、重啟助手。是一款可以快速讓手機進行重啟或是重啟後進入刷機、引導、下載、安全等運行模式。
I. android 阿里雲的推送服務被殺死後如何重啟
Service組件在android開發中經常遇到,其經常作為後台服務,需要始終保持運行,負責處理一些必要(見不得人)的任務。而一些安全軟體,如360等,會有結束進程的功能,如果不做Service的保持,就會被其殺掉。
在早些時候,我們可以通過在
1. service中重寫onStartCommand方法,這個方法有三個返回值, START_STICKY是service被kill掉後自動
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
2. 配置android:persistent="true"
3. setForeground(true);
4. android:process=」com.xxx.xxxservice」配置到單獨的進程中
以上的方法要麼只是提升service優先順序或者存活率, 並不能解決被安全軟體強行殺死的問題.
要麼像第四種單獨的進程運行service在360老的版本是可以的,但是在360的比較新的版本中仍然會被殺死.
如何保持Service的運行狀態是現在要說明的,核心就是利用ANDROID的系統廣播,觸發自己的程序檢查Service的運行狀態,如果被殺掉,就再起來。
常用的有開機廣播,解鎖屏幕的廣播,電量變化等等, 其中解屏的廣播算比較頻繁的了,但是也並不能保證一定的頻率,尤其是在特定的時間里(比如用戶睡覺的時候,用戶並不進行解鎖操作).而我們仍要做一些操作的時候,就沒有辦法了.
因此,我採用了一種別的方案. 另外再加上兩個類似一守護進程的Service, 分別檢查Service的運行狀態,注冊響應的廣播,對其進行守護,一旦發現沒有運行就將其啟動.
我利用的系統廣播是Intent.ACTION_TIME_TICK,這個廣播每分鍾發送一次,我們可以每分鍾檢查一次Service的運行狀態,如果已經被結束了,就重新啟動Service。