为了账号安全,请及时绑定邮箱和手机立即绑定

Android-重识Activity

难度入门
时长 1小时13分
学习人数
综合评分9.70
93人评价 查看评价
9.8 内容实用
9.7 简洁易懂
9.6 逻辑清晰
  • 在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
提交
取消
课程须知
需要完成<<Android攻城师>>课程
老师告诉你能学到什么?
将学到: 1:Activity的生命周期与交互 2:切换屏幕 3:应用场景 4:启动方式

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!