第五章 Activity的生命周期onStart和onStop 2.9.2
作者:互联网
1. MainActivity:
1 package com.example.activitycircledemo; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widget.TextView; 9 10 import androidx.annotation.Nullable; 11 12 /** 13 * 假设该视频播放器播放电影时,来电话了 14 */ 15 public class VideoPlayerActivity extends Activity { 16 private static final String TAG = "VideoPlayerActivity"; 17 private boolean isPlay = false; 18 // 表明是不是因为生命周期的变化而主动停止的 19 private boolean isStopAuto = false; 20 private Button mBtnPlayerControl; 21 private TextView mTextCurrentPlayStatus; 22 23 @Override 24 protected void onCreate(@Nullable Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_player); 27 // 有一个播放的按钮 28 initView(); 29 30 initListener(); 31 } 32 33 private void initListener() { 34 mBtnPlayerControl.setOnClickListener(new View.OnClickListener() { 35 @Override 36 public void onClick(View v) { 37 // 按钮控制播放 38 if (isPlay) { 39 // 如果当前状态是播放,那就去停止(暂停暂时不考虑 40 stop(); 41 }else{ 42 // 如果当前状态是停止的,那就去播放视频 43 play(); 44 } 45 } 46 }); 47 } 48 49 private void initView() { 50 mTextCurrentPlayStatus = (TextView) this.findViewById(R.id.current_play_status); 51 mBtnPlayerControl = (Button) this.findViewById(R.id.player_control); 52 } 53 54 private void play(){ 55 Log.d(TAG, "播放电影"); 56 mTextCurrentPlayStatus.setText("正在播放电影"); 57 mBtnPlayerControl.setText("暂停"); 58 isPlay = true; 59 } 60 61 private void stop(){ 62 Log.d(TAG, "停止电影播放"); 63 mTextCurrentPlayStatus.setText("电影已经停止播放"); 64 mBtnPlayerControl.setText("播放"); 65 isPlay = false; 66 } 67 68 @Override 69 protected void onStart() { 70 super.onStart(); 71 Log.d(TAG, "onStart...开始播放"); 72 // 这里在回到播放器时,是否继续播放,取决于用户需求或者是产品经理 73 // 因为进程周期而关闭并且此时是未播放状态 74 if (isStopAuto && !isPlay) { 75 play(); 76 isStopAuto = false; 77 } 78 } 79 80 @Override 81 protected void onStop() { 82 super.onStop(); 83 Log.d(TAG, "onStop...暂停播放"); 84 if (isPlay) { 85 // 如果当前是播放的,那么在接电话的时候就应该停止 86 stop(); 87 isStopAuto = true; 88 } 89 } 90 }
2. activity_player:
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:orientation="vertical"> 7 8 <TextView 9 android:id="@+id/current_play_status" 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content" 12 android:textSize="30sp" 13 android:layout_centerInParent="true"/> 14 15 <Button 16 android:id="@+id/player_control" 17 android:layout_width="wrap_content" 18 android:layout_height="wrap_content" 19 android:text="播放"/> 20 21 22 23 </RelativeLayout>
标签:onStart,void,private,isPlay,2.9,onStop,import,android,播放 来源: https://www.cnblogs.com/EndlessShw/p/15354144.html