㈠ 安卓訪問受限已禁用所有語言服務怎麼弄
用過。挺不錯的。而且不佔內存。
這是一款系統安全軟體,致力於維護用戶的利益,幫助用戶節省不必要的網路流量。安裝並啟動本軟體以後,用戶只需要對彈出的列表中的應用程序進行簡單的設置,即可以控制該應用程序對網路的訪問許可權。本軟體的功能在部分沒有獲得root許可權的手機上可能無法使用。
使用方法:
點擊想禁用的許可權,然後再點擊啟動,就完成預期功能。若想清空所有已禁用的許可權,點擊恢復設置即可完成
執行完後可以直接退出,不用在後台運行,不佔用內存。在每次開機時候只要開啟程序點擊菜單選擇開始執行即可一勞永逸。
㈡ android怎麼打開/關閉系統解鎖服務
轉載 Android如何打開/關閉系統解鎖服務?—典型錯誤分析
最近正在做一個Android的解鎖應用,需要屏蔽系統解鎖,並在適當的時候打開系統解鎖,在網上search了很多有關系統解鎖的資料,學到了很多關於系統解鎖方面的知識,同時也發現了很多網友犯下的一個共同的錯誤。現分享一下:
錯誤一:
總所周知,要關閉系統自帶的鎖屏服務需要用到以下代碼:
mKeyguard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
mKeylock = mKeyguard.newKeyguardLock("");
mKeylock.disableKeyguard();
要打開系統鎖屏服務需要以下代碼:
mKeylock.reenableKeyguard()
網上很多朋友對disableKeyguard()的理解為:將屏幕打開並解鎖,只要執行這個方法就會是屏幕變亮並自動解鎖!同樣reenableKeyguard()的作用是關閉屏幕並上鎖!
大錯而特錯了!
我們來看看google api對這兩個方法的解釋:
disableKeyguard: Disable the keyguard from showing. If the keyguard is currently showing, hide it. The keyguard will be prevented from showing again untilreenableKeyguard() is called.
reenableKeyguard: Reenable the keyguard. The keyguard will reappear if the previous call todisableKeyguard() caused it it to be hidden.
所以,disableKeyguard只是關閉系統鎖屏服務,調用該方法後並不會立即解鎖,而是使之不顯示解鎖,同樣reenableKeyguard是恢復鎖屏服務,並不會立即鎖屏!
錯誤二:
下面是通過兩個按鈕來模擬打開/關閉系統鎖屏的代碼:
package com.example.keyguard; import android.os.Bundle; import android.app.Activity; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_key_guard); /* 獲取KeyGuardManager對象 */ km = (KeyguardManager)this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); myButtonOff = (Button)findViewById(R.id.buttonOff); myButtonOff.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 關閉系統鎖屏服務 */ km.newKeyguardLock(TAG).disableKeyguard(); } }); myButtonOn = (Button)findViewById(R.id.buttonOn); myButtonOn.setOnClickListener(new Button.OnClickListener(){public void onClick(View arg0) { /* 打開系統鎖屏服務 */ km.newKeyguardLock(TAG).reenableKeyguard(); } }); } }
這段代碼看起來很完美,但是執行之後會發現:只能關閉鎖屏服務,無法恢復鎖屏服務!
是什麼原因呢?
原來是在調用disableKeyguard和reenableKeyguard的時候必須使用同一個KeyguardLock對象!
程序略加修改:
package com.example.keyguard; import android.os.Bundle; import android.app.Activity; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; /** * @author Onejune * @function 打開/關閉系統鎖屏服務測試 * @note 在打開/關閉系統鎖屏服務時必須使用同一個KeyguardLock對象,否則出錯 */ public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private KeyguardLock kl; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_key_guard); /* 獲取KeyGuardManager對象 */ km = (KeyguardManager)this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); /* 獲取KeyguardLock對象 */ kl = km.newKeyguardLock(TAG); myButtonOff = (Button)findViewById(R.id.buttonOff); myButtonOff.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 關閉系統鎖屏服務 */ kl.disableKeyguard(); } }); myButtonOn = (Button)findViewById(R.id.buttonOn); myButtonOn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 打開系統鎖屏服務 */ kl.reenableKeyguard(); } }); } }
終於OK!
㈢ Android關閉service
stopService(new Intent(當前Activity.this, 後台Service.class));
這個是可以的啊
㈣ Android中怎麼啟動關閉Service及功能解釋
啟動:
//首先注冊服務
<service
android:name="com.wangdeyu.service.MusicService"
android:exported="false" >
<intent-filter>
<action android:name="com.abc" />
</intent-filter>
</service>
//啟動服務
Intent service=new Intent(" com.abc");
startService(service);
//Service生命周期
①onCreate() 創建Service
②onStart(Intent intent, int startId) 啟動Service
③onDestroy() 銷毀Service
//關閉服務
stopService(service);
Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy
我們有兩種方式啟動一個Service,他們對Service生命周期的影響是不一樣的。
1 通過startService,就是上面這種
Service會經歷 onCreate --> onStart
stopService的時候直接onDestroy
如果是 調用者 直接退出而沒有調用stopService的話,Service會一直在後台運行。
下次調用者再起來仍然可以stopService。
2 通過bindService
Service只會運行onCreate, 這個時候 調用者和Service綁定在一起
調用者退出了,Srevice就會調用onUnbind-->onDestroyed
所謂綁定在一起就共存亡了。
注意:Service的onCreate的方法只會被調用一次,
就是你無論多少次的startService又 bindService,Service只被創建一次。
如果先是bind了,那麼start的時候就直接運行Service的onStart方法,
如果先是start,那麼bind的時候就直接運行onBind方法。如果你先bind上了,就stop不掉了,
只能先UnbindService, 再StopService,所以是先start還是先bind行為是有區別的。
Android中的服務和windows中的服務是類似的東西,服務一般沒有用戶操作界面,它運行於系統中不容易被用戶發覺,可以使用它開發如監控之類的程序。
服務不能自己運行,需要通過調用Context.startService()或Context.bindService()方法啟動服務。
這兩個方法都可以啟動Service,但是它們的使用場合有所不同。使用startService()方法啟用服務,調用者與服務之間沒有關連,
即使調用者退出了,服務仍然運行。使用bindService()方法啟用服務,調用者與服務綁定在了一起,調用者一旦退出,服務也就終止,大有「不求同時生,必須同時死」的特點。
如果打算採用Context.startService()方法啟動服務,在服務未被創建時,系統會先調用服務的onCreate()方法,
接著調用onStart()方法。如果調用startService()方法前服務已經被創建,多次調用startService()方法並不會導致多次創建服務,
但會導致多次調用onStart()方法。採用startService()方法啟動的服務,只能調用Context.stopService()方法結束服務,服務結束時會調用onDestroy()方法。
如果打算採用Context.bindService()方法啟動服務,在服務未被創建時,系統會先調用服務的onCreate()方法,
接著調用onBind()方法。這個時候調用者和服務綁定在一起,調用者退出了,系統就會先調用服務的onUnbind()方法,
接著調用onDestroy()方法。如果調用bindService()方法前服務已經被綁定,
多次調用bindService()方法並不會導致多次創建服務及綁定(也就是說onCreate()和onBind()方法並不會被多次調用)。
如果調用者希望與正在綁定的服務解除綁定,可以調用unbindService()方法,調用該方法也會導致系統調用服務的onUnbind()-->onDestroy()方法.
㈤ 在android中怎麼關閉一個service,要真正的關閉
因為你的Service注冊了對通話事件的監聽,所以每次電話進來的時候,系統會自動開啟你的Service。這個不是在Activity裡面可以關得掉的。需要你對通話事件注銷監聽。
㈥ android 如何禁止後台進程和服務啟動
下載雙子星應用大管家,推薦root後使用,切換到高級模式,點app然後選擇「管理自動運行」(允許、禁止各種條件下的自動啟動)
㈦ 求android中如何關閉服務
Service是粘性的,如果被至於後台是無法通過程序來關掉的,除非你在Service內部去通過綁定借口或者廣播,使用回調的辦法和發送廣播,才能夠通過主程序主動來關閉服務,否則只能等待用戶手動在後台將服務刪除!
㈧ android應用進程關閉怎麼啟動service
Service不是分離開的進程,除非其他特殊情況,它不會運行在自己的進程,而是作為啟動運行它的進程的一部分。
Service不是線程,這意味著它將在主線程里勞作。
啟動service有兩種方法:
Context.startService()調用者與服務之間沒有關聯,即使調用者退出,服務仍可運行
Context.bindService() 調用者與服務綁定在一起,調用者一旦退出,服務也就終止。
㈨ Android中如何啟用Service,如何停用Service
• Context.startService()
• Context.bindService()
1. 在同一個應用任何地方調用 startService() 方法就能啟動 Service 了,然後系統會回調 Service 類的
onCreate() 以及 onStart() 方法。這樣啟動的 Service 會一直運行在後台,直到
Context.stopService() 或者 selfStop() 方法被調用。另外如果一個 Service 已經被啟動,其他代碼再試圖調用
startService() 方法,是不會執行 onCreate() 的,但會重新執行一次 onStart() 。
2. 另外一種 bindService() 方法的意思是,把這個 Service 和調用 Service
的客戶類綁起來,如果調用這個客戶類被銷毀,Service 也會被銷毀。用這個方法的一個好處是,bindService() 方法執行後
Service 會回調上邊提到的 onBind() 方發,你可以從這里返回一個實現了 IBind
介面的類,在客戶端操作這個類就能和這個服務通信了,比如得到 Service 運行的狀態或其他操作。如果 Service
還沒有運行,使用這個方法啟動 Service 就會 onCreate() 方法而不會調用 onStart()。
總結:
1.
startService()的目的是回調onStart()方法,onCreate()
方法是在Service不存在的時候調用的,如果Service存在(例如之前調用了bindService,那麼Service的onCreate方法
已經調用了)那麼startService()將跳過onCreate() 方法。
2.
bindService()目的是回調onBind()方法,它的作用是在Service和調用者之間建立一個橋梁,並不負責更多的工作(例如一個
Service需要連接伺服器的操作),一般使用bindService來綁定到一個現有的Service(即通過StartService啟動的服
務)。
由於Service 的onStart()方法只有在startService()啟動Service的情況下才調用,故使用onStart()的時候要注意這點。
㈩ 安卓軟體禁用服務禁用了那些服務真的有用嗎
沒用