Android Activity

  • activity之intent
    • activity的跳轉(zhuǎn)通過intent,分顯式意圖和隱式意圖
    • 顯式意圖:直接傳入要跳轉(zhuǎn)的activity,和上下文,通過startActivity(intent)
    • 隱式意圖:要指明action和category,然后在清單文件中activity·標簽中配置<intent-filter>,一般要兩者都匹配上,才能啟動該activity,<intent-filter>如果配置的category·是默認的,則不需要指明category
    • 每個intent只能指明一個action,可以有多個category
    • 隱式intent不但能啟動自己程序里的活動,還能啟動其他程序里的活動,如啟動系統(tǒng)的瀏覽器
 Intent intent = new Intent(Intent.ACTION_VIEW);
 intent.setData(Uri.parse("http:www.baidu.com"));
 startActivity(intent);
  • setData(Uri uri):指明操作的數(shù)據(jù),<intent-filter>中也要配置<data>,才能用隱式意圖啟動
  • 調(diào)用系統(tǒng)撥號界面
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
  • intent攜帶數(shù)據(jù):putExtra(key,value),獲取數(shù)據(jù):如string類型的,getIntent().getStringExtra()
  • intent返回數(shù)據(jù):startActivityForResult(int requestCode,Intent intent),在被開啟的activity中返回數(shù)據(jù)時,調(diào)用setResult(“RESULT_OK”,intent)返回數(shù)據(jù),重寫onActivityResult()取得數(shù)據(jù)
  • 重寫返回鍵:onBackPressed()
  • 活動的四種狀態(tài):處于棧頂,不處于棧頂?shù)匀豢梢?,不可見,銷毀狀態(tài)
  • 活動的生命周期:
    • onCreate():加載布局,綁定布局
    • onStart():不可見到可見
    • onResume():可見,并獲取焦點
    • onPause():失去焦點
    • onStop():不可見
    • onDestroy():被銷毀
    • onRestart():由不可見到可見
  • 活動被系統(tǒng)回收:當activityA啟動到ActivityB,ActivityA不可見,有可能被系統(tǒng)回收,這時,按返回鍵,activityA還是能看到,但是已經(jīng)被重新創(chuàng)建了,而不是走的onRestart(),如何解決呢?通過重寫onSaveInstanceState()保存數(shù)據(jù)
 @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        String tempData = "hello";
        outState.putString("save_data",tempData);
    }

如何在activity重新創(chuàng)建的時候取出數(shù)據(jù)呢?

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if(savedInstanceState!=null){
            String data = savedInstanceState.getString("save_data");
        }
    }
  • 獲取當前任務棧的id:getTaskId()
  • 殺死當前應用: android.os.Process.killProcess(android.os.Process.myPid());

能不能來一點有趣的知識

1.activity的跳轉(zhuǎn)動畫
通過overridePendingTransition()方法

    Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        overridePendingTransition(R.anim.screen_zoom_in, R.anim.screen_zoom_out);
        finish();
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1.活動是什么 Activity 活動是最容易吸引用戶的地方,它是一種可以包含用戶界面的組件,主要用于和用戶進行交...
    隨心者隨心行閱讀 268評論 0 0
  • 當你決定要學習android的時候,這時候就需要制定一個學習路線,而我們應該從哪里入手呢?你可以想象一下,當你打開...
    強大帥閱讀 8,295評論 2 10
  • 【 Android四大組件之一 主要用于與用戶進行交互,在一個App中可能存在零個或多個Activity 】 1....
    征程_Journey閱讀 2,055評論 0 4
  • Activity https://developer.android.com/guide/components/a...
    XLsn0w閱讀 770評論 0 4
  • 01 這么說吧,每個員工都想巴結領導。 這是一個技術性非常強的工種,其難度要遠遠超出編程,翻譯或是寫作。那些工作你...
    東方一郎作者閱讀 1,311評論 0 2

友情鏈接更多精彩內(nèi)容