-
在activity销毁的时候保存一些状态信息onSaveInstanceState()方法查看全部
-
进行横竖屏切换时会将此activity先销毁掉,即经历onPause->onStop->onDestroy方法,然后重新执行此activity的onCreate->onStart->onResume方法。查看全部
-
启动系统中的activity (1)浏览器 Intent imoocIntent = new Intent(); imoocIntent.setAction(Intent.ACTION_VIEW); //intent-filter中的action为Intent.ACTION_VIEW的activity都会收到启动命令 Uri url = Uri.parse("http://www.imooc.com"); imoocIntent.setData(url); startActivity(imoocIntent); (2)相册 Intent glaryIntent = new Intent(); glaryIntent.setAction(Intent.ACTION_GET_CONTENT); glaryIntent.setType("image/*"); startActivity(glaryIntent); (3)发送短信 Intent messageIntent = new Intent(); messageIntent.setAction(Intent.ACTION_SEND); messageIntent.setType("text/plain"); messageIntent.putExtra(Intent.EXTRA_TEXT, "I am xzhang76"); //"I am xzhang76"为发送内容 startActivity(messageIntent); (4)打电话 Intent callIntent = new Intent(); callIntent.setAction(Intent.ACTION_VIEW); Uri number = Uri.parse("tel:15850590250"); callIntent.setData(number); startActivity(callIntent);查看全部
-
Activity启动的两种方式 1. 匿名启动 (1)首先Manifest中要对被启动的activity加一个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)匿名启动上面的activity,注意setAction()指定的action Intent thirdIntent = new Intent(); thirdIntent.setAction("xzhang76"); startActivity(thirdIntent);查看全部
-
声明周期应用场景 1. 创建一个MediaPlayer实例,并播放音乐。 private MediaPlayer mMediaPlayer; mMediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.zhang); 2. 音乐暂停 if(mMediaPlayer.isPlaying()){ mMediaPlayer.pause(); position = mMediaPlayer.getCurrentPosition(); } 放在onPause()中执行。 3. 继续播放 if(position!=0){ mMediaPlayer.seekTo(position); mMediaPlayer.start(); } 放在onResume()中执行。 4. 销毁MediaPlayer if(mMediaPlayer!=null){ mMediaPlayer.release(); mMediaPlayer = null; } 放在onDestory()中执行 在onDestory()方法中,做一些activity收尾工作,比如handler和broadcast回收。查看全部
-
重识activity 1. 进行横竖屏切换时会将此activity先销毁掉,即经历onPause->onStop->onDestroy方法,然后重新执行此activity的onCreate->onStart->onResume方法。 2. 在横竖屏切换添加状态的保存和恢复 (1)重写onSaveInstanceState()方法 protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("name", "xzhang76"); } 这个方法会在onPause()之后调用,用来保存状态到Bundle对象中。 (2)在横竖屏切换之后,会再次调用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")); } } 通过Bundle对象savedInstanceState就可以将保存的状态取出来。 (3)现在的执行顺序就变成 切屏=> onPause->onSaveInstanceState->onStop->onDestroy,onCreate->onStart->onResume查看全部
-
1. 单个activity的生命周期 (1)显示状态: onCreate()、onStart()、onResume() (2)不可见状态 onPause()——部分可见、onStop()——全部不可见 (3)销毁状态 onDestory() (4)需要注意当页面部分可见时,调用onPause(),再回去的话调用onResume() 当页面全部不可见时,调用onPause(),再调用onStop() 2. 多个activity的生命周期交互——A->B->A (1)A->B A: onCreate()->onStart()->onResume() 切换之后 A:onPause() B: onCreate()->onStart()->onResume() A: onStop()全部不可见 注意A并没有onDestroy() (2)B->A B: onPause() A: onRestart()->onStart()->onResume() //注意如果从onStop()回来就会调用onRestart() B: onStop()->onDestory() 3. 为什么在切换Activity时要先调用onPause() onPause()会将当前activity先暂停住,假设当前activity是一个videoPlayer在播放,如果不调用onPause()就调用下一个activity的onCreate()->onStart()->onResume(),就会导致videoPlayer还在后台播放(有声音)。 4. 为什么在切换activity时先调用下一个activity的onCreate()->onStart()->onResume(),然后才调用onStop() 这是一种保护机制。 因为调用onStop()会将当前activity置于完全不可见状态,如果先执行当前activity的onStop()再执行下一个activity的onCreate(),万一下一个activity闪退了,那么将会显示为黑屏。 android设计如下: 下一个activity调用onCreate()->onStart()->onResume()之后,表示它已经正常了,就会通知上一个activity去调用onStop().查看全部
-
重现查看全部
-
2:生命周期 { 1:一个Activity生命周期 onCreate----->onStart---->onResumed---->onPause---->onStop---->onRestart---->onDestroy 2:多个Activity生命周期的交互 第一个页面 onCreate----->onStart---->onResumed---->onPause 第二个页面 onCreate----->onStart---->onPause 第一个页面 ---->onStop 从第二个页面返回第一个页面(隐藏状态会onRestart) 第二个页面 ---->onPause 第一个页面 ---->onRestart---->onStart---->onResumed 第二个页面 ---->onStop }查看全部
-
onDestroy onDestroy onDestroy 重要的事情说三遍 不是onDestory查看全部
-
在一个Aactivity基础上打开Bactivity,会先A_pause,再创建B_create_start_resume,再调用A_stop,back时,会先B_pause,再A_restart_start_resume,再B_stop_destory查看全部
-
打开浏览器查看全部
-
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri url = Uri.parse("网址"); intent.setData(url); startActivity(intent);查看全部
-
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri url = Uri.parse("tel:电话号码"); intent.setData(url); startActivity(intent); 打电话查看全部
-
发送短信: intent.setAction(Intent.ACTION_SEND) intent.setType("text/plain) intent.putExtra(Intent.EXTRA_TEXT,"XXX")查看全部
举报
0/150
提交
取消