-
在activity銷(xiāo)毀的時(shí)候保存一些狀態(tài)信息onSaveInstanceState()方法查看全部
-
進(jìn)行橫豎屏切換時(shí)會(huì)將此activity先銷(xiāo)毀掉,即經(jīng)歷onPause->onStop->onDestroy方法,然后重新執(zhí)行此activity的onCreate->onStart->onResume方法。查看全部
-
啟動(dòng)系統(tǒng)中的activity (1)瀏覽器 Intent imoocIntent = new Intent(); imoocIntent.setAction(Intent.ACTION_VIEW); //intent-filter中的action為Intent.ACTION_VIEW的activity都會(huì)收到啟動(dòng)命令 Uri url = Uri.parse("http://idcbgp.cn"); imoocIntent.setData(url); startActivity(imoocIntent); (2)相冊(cè) Intent glaryIntent = new Intent(); glaryIntent.setAction(Intent.ACTION_GET_CONTENT); glaryIntent.setType("image/*"); startActivity(glaryIntent); (3)發(fā)送短信 Intent messageIntent = new Intent(); messageIntent.setAction(Intent.ACTION_SEND); messageIntent.setType("text/plain"); messageIntent.putExtra(Intent.EXTRA_TEXT, "I am xzhang76"); //"I am xzhang76"為發(fā)送內(nèi)容 startActivity(messageIntent); (4)打電話 Intent callIntent = new Intent(); callIntent.setAction(Intent.ACTION_VIEW); Uri number = Uri.parse("tel:15850590250"); callIntent.setData(number); startActivity(callIntent);查看全部
-
Activity啟動(dòng)的兩種方式 1. 匿名啟動(dòng) (1)首先Manifest中要對(duì)被啟動(dòng)的activity加一個(gè)intent-filter,指定其action <activity android:name="com.example.activitydemo.ThirdActivity" android:theme="@android:style/Theme.DeviceDefault.Dialog"> <intent-filter > <action android:name="xzhang76"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> (2)匿名啟動(dòng)上面的activity,注意setAction()指定的action Intent thirdIntent = new Intent(); thirdIntent.setAction("xzhang76"); startActivity(thirdIntent);查看全部
-
聲明周期應(yīng)用場(chǎng)景 1. 創(chuàng)建一個(gè)MediaPlayer實(shí)例,并播放音樂(lè)。 private MediaPlayer mMediaPlayer; mMediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.zhang); 2. 音樂(lè)暫停 if(mMediaPlayer.isPlaying()){ mMediaPlayer.pause(); position = mMediaPlayer.getCurrentPosition(); } 放在onPause()中執(zhí)行。 3. 繼續(xù)播放 if(position!=0){ mMediaPlayer.seekTo(position); mMediaPlayer.start(); } 放在onResume()中執(zhí)行。 4. 銷(xiāo)毀MediaPlayer if(mMediaPlayer!=null){ mMediaPlayer.release(); mMediaPlayer = null; } 放在onDestory()中執(zhí)行 在onDestory()方法中,做一些activity收尾工作,比如handler和broadcast回收。查看全部
-
重識(shí)activity 1. 進(jìn)行橫豎屏切換時(shí)會(huì)將此activity先銷(xiāo)毀掉,即經(jīng)歷onPause->onStop->onDestroy方法,然后重新執(zhí)行此activity的onCreate->onStart->onResume方法。 2. 在橫豎屏切換添加狀態(tài)的保存和恢復(fù) (1)重寫(xiě)onSaveInstanceState()方法 protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("name", "xzhang76"); } 這個(gè)方法會(huì)在onPause()之后調(diào)用,用來(lái)保存狀態(tài)到Bundle對(duì)象中。 (2)在橫豎屏切換之后,會(huì)再次調(diào)用onCreate()方法 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTv = (TextView) findViewById(R.id.textView); if(savedInstanceState != null){ mTv.setText(savedInstanceState.getString("name")); } } 通過(guò)Bundle對(duì)象savedInstanceState就可以將保存的狀態(tài)取出來(lái)。 (3)現(xiàn)在的執(zhí)行順序就變成 切屏=> onPause->onSaveInstanceState->onStop->onDestroy,onCreate->onStart->onResume查看全部
-
1. 單個(gè)activity的生命周期 (1)顯示狀態(tài): onCreate()、onStart()、onResume() (2)不可見(jiàn)狀態(tài) onPause()——部分可見(jiàn)、onStop()——全部不可見(jiàn) (3)銷(xiāo)毀狀態(tài) onDestory() (4)需要注意當(dāng)頁(yè)面部分可見(jiàn)時(shí),調(diào)用onPause(),再回去的話調(diào)用onResume() 當(dāng)頁(yè)面全部不可見(jiàn)時(shí),調(diào)用onPause(),再調(diào)用onStop() 2. 多個(gè)activity的生命周期交互——A->B->A (1)A->B A: onCreate()->onStart()->onResume() 切換之后 A:onPause() B: onCreate()->onStart()->onResume() A: onStop()全部不可見(jiàn) 注意A并沒(méi)有onDestroy() (2)B->A B: onPause() A: onRestart()->onStart()->onResume() //注意如果從onStop()回來(lái)就會(huì)調(diào)用onRestart() B: onStop()->onDestory() 3. 為什么在切換Activity時(shí)要先調(diào)用onPause() onPause()會(huì)將當(dāng)前activity先暫停住,假設(shè)當(dāng)前activity是一個(gè)videoPlayer在播放,如果不調(diào)用onPause()就調(diào)用下一個(gè)activity的onCreate()->onStart()->onResume(),就會(huì)導(dǎo)致videoPlayer還在后臺(tái)播放(有聲音)。 4. 為什么在切換activity時(shí)先調(diào)用下一個(gè)activity的onCreate()->onStart()->onResume(),然后才調(diào)用onStop() 這是一種保護(hù)機(jī)制。 因?yàn)檎{(diào)用onStop()會(huì)將當(dāng)前activity置于完全不可見(jiàn)狀態(tài),如果先執(zhí)行當(dāng)前activity的onStop()再執(zhí)行下一個(gè)activity的onCreate(),萬(wàn)一下一個(gè)activity閃退了,那么將會(huì)顯示為黑屏。 android設(shè)計(jì)如下: 下一個(gè)activity調(diào)用onCreate()->onStart()->onResume()之后,表示它已經(jīng)正常了,就會(huì)通知上一個(gè)activity去調(diào)用onStop().查看全部
-
重現(xiàn)查看全部
-
2:生命周期 { 1:一個(gè)Activity生命周期 onCreate----->onStart---->onResumed---->onPause---->onStop---->onRestart---->onDestroy 2:多個(gè)Activity生命周期的交互 第一個(gè)頁(yè)面 onCreate----->onStart---->onResumed---->onPause 第二個(gè)頁(yè)面 onCreate----->onStart---->onPause 第一個(gè)頁(yè)面 ---->onStop 從第二個(gè)頁(yè)面返回第一個(gè)頁(yè)面(隱藏狀態(tài)會(huì)onRestart) 第二個(gè)頁(yè)面 ---->onPause 第一個(gè)頁(yè)面 ---->onRestart---->onStart---->onResumed 第二個(gè)頁(yè)面 ---->onStop }查看全部
-
onDestroy onDestroy onDestroy 重要的事情說(shuō)三遍 不是onDestory查看全部
-
在一個(gè)Aactivity基礎(chǔ)上打開(kāi)Bactivity,會(huì)先A_pause,再創(chuàng)建B_create_start_resume,再調(diào)用A_stop,back時(shí),會(huì)先B_pause,再A_restart_start_resume,再B_stop_destory查看全部
-
打開(kāi)瀏覽器查看全部
-
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri url = Uri.parse("網(wǎng)址"); intent.setData(url); startActivity(intent);查看全部
-
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri url = Uri.parse("tel:電話號(hào)碼"); intent.setData(url); startActivity(intent); 打電話查看全部
-
發(fā)送短信: intent.setAction(Intent.ACTION_SEND) intent.setType("text/plain) intent.putExtra(Intent.EXTRA_TEXT,"XXX")查看全部
舉報(bào)
0/150
提交
取消