失效链接处理 |
Android面试题ȝ PDF 下蝲
本站整理下蝲Q?/strong>
链接Q?a target="_blank">https://pan.baidu.com/s/1Esq-746ycf5Yq45KIOsbig
提取码:(x)wh48
相关截图Q?/strong>
![]()
主要内容Q?/strong>
1、Activity的生命周期,两个Activity之间跌{时必然会(x)执行的是那几个方法?
——启动q程onCreate()->onStart()->onResume,销毁过E?onPause->onStop->onDestory;
必然?x)执行第一个Activity的onPause()->onStop(),执行W二个Activity?onCreate()->onStart()->onResume
onCreate()Q在q里创徏用户、做一些数据的初始化工?nbsp;
onStart()Q到q一步百q城用户可见不可交互?/div>
onResume()Q变成与用户可交互的
onPause()Q到q一步是可见但不可交互的Q系l会(x)停止所有的动画{消耗EQͼ的事情从上文的描q已l知道,应该在这里保存你的一些数据,q是E序的优先降低Q有可能被系l收回。在q里保存的数据,应该在onResume()里读出来Q注意:(x)q个Ҏ(gu)里做的事情要短,因ؓ(f)下一个activity不会(x){到q个Ҏ(gu)完成才启动)
onStop()Q变得不可见Q被下一个activtiy 覆盖Q?/div>
onDestory()Q这是activtiy被干掉前的最后一个被调用的方法;
onPause,onStop,onDestory,三种状态下activtiy都有可能被系l干?/div>
2、启动一个Activity有哪几种Ҏ(gu)Q?/div>
—— 一UIntent intent=new Intent(this,xxx.class);已知要启动的Activity名称Q?/div>
另一UIntent intent=new Intent(Intent.ACTION_INSERT,getIntent().getData());不知道要启动的Activtiy名称Q例如调用系l的发送电(sh)信的E序?/div>
3、启动一个程序,可以ȝ面点d标进入,也可以从一个程序中跌{q去Q二者有什么区别?
区别是根据Activity在manifest里面的配|,q个activtiy可能?x)放在不同的task栈里?/div>
Intent讄的flag flag_new_task
4、怎么让在启动一个Activity是就启动一个serviceQ?/div>
——把启动的service代码写在Activity的onCreateҎ(gu)中?/div>
Activity怎么和servicel定Q怎么在Activtiy中启动自己对应的serviceQ?/div>
——通过bindServiceҎ(gu)可以Activtiy和Servicel定
5、两个Activity之间怎么传递数据?
——在Android中用Intent在两个Activtiy间传递数?nbsp;
6、你后台的Activity被系l回收怎么办:(x)onSaveInstanceState
当你的程序中某一个Activity A 在运行时中,d或被动地q行另一个新的Activity BQ这个时候A?x)执?/div>
Java代码
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putLong("id", 1234567890);
}
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putLong("id", 1234567890);
}
B 完成以后又会(x)来找A, q个时候就有两U情况,一U是A被回Ӟ一U是没有被回Ӟ被回收的Ap重新调用onCreate()Ҏ(gu)Q不同于直接启动的是q回onCreate()里是带上参数savedInstanceStateQ没被收回的p是onResume好了?/div>
savedInstanceState是一个Bundle对象Q你基本上可以把他理解ؓ(f)pȝ帮你l护的一个Map对象。在onCreate()里你可能?x)用到它Q如果正常启动onCreate׃?x)有它,所以用的时候要判断一下是否ؓ(f)I?/div>
Java代码
if(savedInstanceState != null){
long id = savedInstanceState.getLong("id");
}
if(savedInstanceState != null){
long id = savedInstanceState.getLong("id");
}
7、如何退出Activity
对于单一Activity的应用来_(d)退出很单,直接finish()卛_。当Ӟ也可以用killProcess()和System.exit()q样的方法?/div>
1、抛异常强制退出:(x)
该方法通过抛异常,使程序Force Close?/div>
验证可以Q但是,需要解决的问题是,如何使程序结束掉Q而不弹出Force Close的窗口?/div>
2、记录打开的ActivityQ?/div>
每打开一个ActivityQ就记录下来。在需要退出时Q关闭每一个Activity卛_?/div>
3、发送特定广播:(x)
在需要结束应用时Q发送一个特定的q播Q每个Activity收到q播后,关闭卛_?/div>
4、递归退?/div>
在打开新的Activity时用startActivityForResultQ然后自己加标志Q在onActivityResult中处理,递归关闭?/div>
除了W一个,都是惛_法把每一个Activity都结束掉Q间接达到目的。但是这样做同样不完?/div>
你会(x)发现Q如果自q应用E序Ҏ(gu)一个Activity都设|了nosensorQ在两个Activityl束的间隙,sensor可能有效了?/div>
但至,我们的目的达CQ而且没有影响用户使用?br />
|