1.startService方法啓動,不關閉,則一直運行,即便退出了當前Activity
2.基於此能夠實現音樂播放器的後臺播放
3.基於此結合廣播接收者能夠實現開屏跳轉到指定Activity、任意位置鎖屏監聽
3-1.在服務開啓時註冊開關屏的廣播接收者,在服務結束時注消開關屏的廣播接收者
3-2.每次開屏跳轉到指定頁面java
public class ScreenService extends Service { private static final String TAG = "ScreenService"; private ScreenReceiver receiver; @Override public IBinder onBind(Intent intent) { Log.i(TAG, "onBind"); return null; } @Override//當服務第一次啓動的時候調用 public void onCreate() {//在這個方法裏面註冊廣播接收者 receiver = new ScreenReceiver();//[1]獲取ScreenReceiver實例 IntentFilter filter = new IntentFilter(); //[2]建立IntentFilter對象 filter.addAction("android.intent.action.SCREEN_OFF");//[3]添加註冊的事件 filter.addAction("android.intent.action.SCREEN_ON"); registerReceiver(receiver, filter);//[4]經過代碼的方式註冊 super.onCreate(); } @Override//當服務銷燬的時候調用 public void onDestroy() { unregisterReceiver(receiver);//當actvivity銷燬的時候 取消註冊廣播接收者 super.onDestroy(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i(TAG, "onStartCommand"); return super.onStartCommand(intent, flags, startId); } }
public class ScreenReceiver extends BroadcastReceiver { private static final String TAG = "ScreenReceiver"; @Override public void onReceive(Context context, Intent intent) { //[1]獲取到當前廣播的事件類型 String action = intent.getAction(); //[2]對當前廣播事件類型作一個判斷 if ("android.intent.action.SCREEN_OFF".equals(action)) { Log.i(TAG, "屏幕鎖屏了"); } else if ("android.intent.action.SCREEN_ON".equals(action)) { //每次開屏跳轉到指定頁面 context.startActivity(new Intent(context, MainActivity.class)); Log.i(TAG, "屏幕解鎖了"); } } }
<service android:name=".base.ScreenService"/>
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startService(new Intent(this, ScreenService.class)); } }
onCreate==>onStartCommand
其中onCreate只會執行1次每次啓動都會執行onStartCommandandroid
[1]本文由張風捷特烈原創,轉載請註明
[2]歡迎廣大編程愛好者共同交流
[3]我的能力有限,若有不正之處歡迎你們批評指證,一定虛心改正
[4]你的喜歡與支持將是我最大的動力git
更多安卓技術歡迎訪問:安卓技術棧
個人github地址:歡迎star
簡書首發,騰訊雲+社區同步更新
張風捷特烈我的網站,編程筆記請訪問:http://www.toly1994.comgithub
QQ:1981462002
郵箱:1981462002@qq.com
微信:zdl1994328編程