日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android实验二:Activity的生命周期

發布時間:2024/1/18 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android实验二:Activity的生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要求

設計如下界面,包括四個按鈕,兩個文本框。單擊對應按鈕可以啟動對應activity。假
定Activity A為啟動Activity。



部分代碼

import androidx.appcompat.app.AppCompatActivity;import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;public class Activity_A extends AppCompatActivity {private static final String TAG = "Activity_A";private static String A_CREATE = "Activity A.onCreate()";private static String A_START = "Activity A.onStart()";private static String A_PAUSE = "Activity A.onPause()";private static String A_RESUME = "Activity A.onResume()" ;private static String A_STOP = "Activity A.onStop()";private static String A_DESTROY = "Activity A.onDestroy()";private static String A_STATUS_CREATE = "Activity A:Created";private static String A_STATUS_START = "Activity A:Started";private static String A_STATUS_PAUSE = "Activity A:Paused";private static String A_STATUS_RESUME = "Activity A:Resumed" ;private static String A_STATUS_STOP = "Activity A:Stopped";private static String A_STATUS_DESTROY = "Activity A:Destroyed";private Button mStartB_Button;private Button mStartC_Button;private Button mFinishA_Button;private Button mDialog_Button;private TextView mLifecycleMethod_textView;private TextView mActivityStatus_textView;private String mMethodA = "";private String mMethodB = "";private String mMethodC = "";private String mMethodList = "";private String mStatusA = "";private String mStatusB = "";private String mStatusC = "";private boolean mIsFirstCreate = true;private static final String EXTRA_IS_FIRST_CREATE =".is.first.create";private static final String EXTRA_IS_FINISH_BA = ".is_finish_ba";private static final String EXTRA_IS_FINISH_CA = ".is_finish_ca";private static final int REQUEST_CODE_FINISH_B = 10;private boolean mIsFinishB = false;private static final String EXTRA_IS_FINISH_AB = ".is_finish_ab";private static final int REQUEST_CODE_FINISH_C = 20;private boolean mIsFinishC = false;private static final String EXTRA_IS_FINISH_AC = ".is_finish_ac";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_a);mIsFirstCreate = getIntent().getBooleanExtra(EXTRA_IS_FIRST_CREATE,true);//獲得activityA是否是第一次啟動的標志mLifecycleMethod_textView = (TextView)findViewById(R.id.activityA_lifecycle_method_textView);mActivityStatus_textView = (TextView)findViewById(R.id.activityA_activity_status_textView);if(mIsFirstCreate) {//判斷activityA是否是第一次啟動initText();//初始化文本mIsFirstCreate = false;}mStartB_Button = (Button)findViewById(R.id.startAB_button);mStartB_Button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(Activity_A.this,Activity_B.class);startActivityForResult(intent,REQUEST_CODE_FINISH_B);}});mStartC_Button = (Button)findViewById(R.id.startAC_button);mStartC_Button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(Activity_A.this,Activity_C.class);startActivityForResult(intent,REQUEST_CODE_FINISH_C);}});mFinishA_Button = (Button)findViewById(R.id.finishA_button);mFinishA_Button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//結束時將結束標志通過Intent傳遞給上一級activityIntent intent = new Intent();intent.putExtra(EXTRA_IS_FINISH_BA, true);intent.putExtra(EXTRA_IS_FINISH_CA, true);setResult(RESULT_OK, intent);finish();}});mDialog_Button = (Button)findViewById(R.id.dialogA_button);mDialog_Button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(Activity_A.this, Activity_Dialog.class);startActivity(intent);}});mMethodA = A_CREATE;mStatusA = A_STATUS_CREATE;showText(mMethodA, mStatusA);Log.d(TAG,"Method: " + mMethodA + " Status: " + mStatusA);}//記錄其他5個生命周期的內容,并保存到文件中@Overrideprotected void onStart() {super.onStart();mMethodA = A_START;mStatusA = A_STATUS_START;showText(mMethodA, mStatusA);Log.d(TAG,"Method: " + mMethodA + " Status: " + mStatusA);}@Overrideprotected void onResume() {super.onResume();mMethodA = A_RESUME;mStatusA = A_STATUS_RESUME;showText(mMethodA, mStatusA);Log.d(TAG,"Method: " + mMethodA + " Status: " + mStatusA);}@Overrideprotected void onPause() {super.onPause();mMethodA = A_PAUSE;mStatusA = A_STATUS_PAUSE;showText(mMethodA, mStatusA);Log.d(TAG,"Method: " + mMethodA + " Status: " + mStatusA);}@Overrideprotected void onStop() {super.onStop();mMethodA = A_STOP;mStatusA = A_STATUS_STOP;showText(mMethodA, mStatusA);Log.d(TAG,"Method: " + mMethodA + " Status: " + mStatusA);}@Overrideprotected void onDestroy() {super.onDestroy();mMethodA = A_DESTROY;mStatusA = A_STATUS_DESTROY;showText(mMethodA, mStatusA);Log.d(TAG,"Method: " + mMethodA + " Status: " + mStatusA);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {//獲得B、C是否結束的標志super.onActivityResult(requestCode, resultCode, data);if (resultCode != Activity.RESULT_OK) {return;}if (requestCode == REQUEST_CODE_FINISH_B) {if (data == null) {return;}mIsFinishB = data.getBooleanExtra(EXTRA_IS_FINISH_AB, false);}if (requestCode == REQUEST_CODE_FINISH_C) {if (data == null) {return;}mIsFinishC = data.getBooleanExtra(EXTRA_IS_FINISH_AC, false);}}public static Intent newIntent(Context packageContext,boolean isFirstCreate) {//Intent方法,從其他activity啟動activity_A時,附帶一個布爾變量,判斷activityA是否是第一次啟動,如果是清除文本里以前的內容Intent intent = new Intent(packageContext,Activity_A.class);intent.putExtra(EXTRA_IS_FIRST_CREATE,isFirstCreate);return intent;}public void initText() {//初始化文本saveMethodList("");saveA("","");saveB("","");saveC("","");}public void showText(String methodText, String statusText){//向文本框內顯示內容saveA(mMethodA,mStatusA);//保存A的方法與狀態mMethodList = loadMethodList();mMethodList = methodText+'\n'+ mMethodList;saveMethodList(mMethodList);mMethodB = loadMethodB();mStatusB = loadStatusB();mMethodC = loadMethodC();mStatusC = loadStatusC();//如果文件中B、C的狀態是pause,則要更改為stopif(mMethodB.equals("Activity B.onPause()")) { mMethodB = "Activity B.onStop()";mStatusB = "Activity B:Stopped";mMethodList = mMethodB+'\n'+ mMethodList;}if(mMethodC.equals("Activity C.onPause()")) {mMethodC = "Activity C.onStop()";mStatusC = "Activity C:Stopped";mMethodList = mMethodC +'\n'+ mMethodList;}//如果文件中B、C的狀態是stop且對應的結束標志為真,則要更改為destroyif(mMethodB.equals("Activity B.onStop()") && mIsFinishB) {mMethodB = "Activity B.onDestroy()";mStatusB = "Activity B:Destroyed";mMethodList = mMethodB+'\n'+ mMethodList;}if(mMethodC.equals("Activity C.onStop()") && mIsFinishC) {mMethodC = "Activity C.onDestroy()";mStatusC = "Activity C:Destroyed";mMethodList = mMethodC+'\n'+ mMethodList;}mLifecycleMethod_textView.setText(mMethodList);if(!mStatusB.equals("")) {statusText = statusText + '\n' + mStatusB;}if(!mStatusC.equals("")) {statusText = statusText + '\n' + mStatusC;}mActivityStatus_textView.setText(statusText);}//以下為文本文件的處理函數public void saveA(String method, String status) {FileOutputStream out = null;BufferedWriter writer = null;try {out = openFileOutput("methodA", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(method);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}try {out = openFileOutput("statusA", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(status);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}}public void saveB(String method, String status) {FileOutputStream out = null;BufferedWriter writer = null;try {out = openFileOutput("methodB", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(method);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}try {out = openFileOutput("statusB", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(status);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}}public void saveC(String method, String status) {FileOutputStream out = null;BufferedWriter writer = null;try {out = openFileOutput("methodC", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(method);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}try {out = openFileOutput("statusC", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(status);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}}public void saveMethodList(String methodList) {FileOutputStream out = null;BufferedWriter writer = null;try {out = openFileOutput("methodList", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(methodList);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}}public String loadMethodList() {FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {in = openFileInput("methodList");reader = new BufferedReader(new InputStreamReader(in));String line = "";while ((line = reader.readLine()) != null) {content.append(line);content.append('\n');}} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}return content.toString();}public String loadMethodB() {FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {in = openFileInput("methodB");reader = new BufferedReader(new InputStreamReader(in));String line = "";while ((line = reader.readLine()) != null) {content.append(line);}} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}return content.toString();}public String loadStatusB() {FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {in = openFileInput("statusB");reader = new BufferedReader(new InputStreamReader(in));String line = "";while ((line = reader.readLine()) != null) {content.append(line);}} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}return content.toString();}public String loadMethodC() {FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {in = openFileInput("methodC");reader = new BufferedReader(new InputStreamReader(in));String line = "";while ((line = reader.readLine()) != null) {content.append(line);}} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}return content.toString();}public String loadStatusC() {FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {in = openFileInput("statusC");reader = new BufferedReader(new InputStreamReader(in));String line = "";while ((line = reader.readLine()) != null) {content.append(line);}} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}return content.toString();} }

完整代碼

由于代碼較多,完整代碼請前往下面鏈接處獲取
Android實驗二:Activity的生命周期

總結

以上是生活随笔為你收集整理的Android实验二:Activity的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。