ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:22.04KB ,
资源ID:5257280      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5257280.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(对Android近期任务列表格Recent Applications地简单分析资料报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

对Android近期任务列表格Recent Applications地简单分析资料报告.docx

1、对Android近期任务列表格Recent Applications地简单分析资料报告对Android近期任务列表(Recent Applications)的简单分析分类:Android开发2013-12-31 11:061599人阅读评论(0)收藏举报.cnblogs./coding-way/archive/2013/06/05/3118732.html这里的近期任务列表就是长按Home键出来的那个Dialog,里面放着近期打开过的应用,当然3.0以上系统的多任务切换键也是。这个Dialog的实现在Android源码的/frameworks/base/policy/src/android/i

2、nternal/policy/impl/RecentApplicationsDialog.java中。接下来就对这个源码分析一下。javaview plaincopy1.publicclassRecentApplicationsDialogextendsDialogimplementsOnClickListener2./Elementsfordebuggingsupport3./privatestaticfinalStringLOG_TAG=RecentApplicationsDialog;4.privatestaticfinalbooleanDBG_FORCE_EMPTY_LIST=fals

3、e;5.6.staticprivateStatusBarManagersStatusBar;7.8.privatestaticfinalintNUM_BUTTONS=8;9.privatestaticfinalintMAX_RECENT_TASKS=NUM_BUTTONS*2;/allowforsomediscards10.11.finalTextViewmIcons=newTextViewNUM_BUTTONS;12.ViewmNoAppsText;13.IntentFiltermBroadcastIntentFilter=newIntentFilter(Intent.ACTION_CLOS

4、E_SYSTEM_DIALOGS);14.15.classRecentTag16.ActivityManager.RecentTaskInfoinfo;17.Intentintent;18.19.20.HandlermHandler=newHandler();21.RunnablemCleanup=newRunnable()22.publicvoidrun()23./dumpextramemorywerehangingonto24.for(TextViewicon:mIcons)25.icon.setCompoundDrawables(null,null,null,null);26.icon.

5、setTag(null);27.28.29.;30.31.publicRecentApplicationsDialog(Contextcontext)32.super(context,.android.internal.R.style.Theme_Dialog_RecentApplications);33.34.35.36./*37.*Wecreatetherecentapplicationsdialogjustonce,anditstaysaround(hidden)38.*untilactivatedbytheuser.39.*40.*seePhoneWindowManager#showR

6、ecentAppsDialog41.*/42.Override43.protectedvoidonCreate(BundlesavedInstanceState)44.super.onCreate(savedInstanceState);45.46.Contextcontext=getContext();47.48.if(sStatusBar=null)49.sStatusBar=(StatusBarManager)context.getSystemService(Context.STATUS_BAR_SERVICE);50.51.52.Windowwindow=getWindow();53.

7、window.requestFeature(Window.FEATURE_NO_TITLE);54.window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);55.window.setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,56.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);57.window.setTitle(Recents);58.59.setContentView(.android.internal.

8、R.layout.recent_apps_dialog);60.61.finalWindowManager.LayoutParamsparams=window.getAttributes();62.params.width=WindowManager.LayoutParams.MATCH_PARENT;63.params.height=WindowManager.LayoutParams.MATCH_PARENT;64.window.setAttributes(params);65.window.setFlags(0,WindowManager.LayoutParams.FLAG_DIM_BE

9、HIND);66.67./默认显示8个68.mIcons0=(TextView)findViewById(.android.internal.R.id.button0);69.mIcons1=(TextView)findViewById(.android.internal.R.id.button1);70.mIcons2=(TextView)findViewById(.android.internal.R.id.button2);71.mIcons3=(TextView)findViewById(.android.internal.R.id.button3);72.mIcons4=(TextV

10、iew)findViewById(.android.internal.R.id.button4);73.mIcons5=(TextView)findViewById(.android.internal.R.id.button5);74.mIcons6=(TextView)findViewById(.android.internal.R.id.button6);75.mIcons7=(TextView)findViewById(.android.internal.R.id.button7);76.mNoAppsText=findViewById(.android.internal.R.id.no

11、_applications_message);77.78./关键在哪,你懂得.79.for(TextViewb:mIcons)80.b.setOnClickListener(this);81.82.83.84.Override85.publicbooleanonKeyDown(intkeyCode,KeyEventevent)86.if(keyCode=KeyEvent.KEYCODE_TAB)87./IgnoreallmetakeysotherthanSHIFT.Theappswitchkeycouldbea88./fallbackactionchordedwithALT,METAoreve

12、nCTRLdependingonthekeymap.89./DPadnavigationishandledbytheViewRootelsewhere.90.finalbooleanbackward=event.isShiftPressed();91.finalintnumIcons=mIcons.length;92.intnumButtons=0;93.while(numButtonsnumIcons&mIconsnumButtons.getVisibility()=View.VISIBLE)94.numButtons+=1;95.96.if(numButtons!=0)97.intnext

13、Focus=backward?numButtons-1:0;98.for(inti=0;inumButtons;i+)99.if(mIconsi.hasFocus()100.if(backward)101.nextFocus=(i+numButtons-1)%numButtons;102.else103.nextFocus=(i+1)%numButtons;104.105.break;106.107.108.finalintdirection=backward?View.FOCUS_BACKWARD:View.FOCUS_FORWARD;109.if(mIconsnextFocus.reque

14、stFocus(direction)110.mIconsnextFocus.playSoundEffect(111.SoundEffectConstants.getContantForFocusDirection(direction);112.113.114.115./ThedialogalwayshandlesthekeytopreventtheViewRootfrom116./performingthedefaultnavigationitself.117.returntrue;118.119.120.returnsuper.onKeyDown(keyCode,event);121.122

15、.123./*124.*Dismissthedialogandswitchtotheselectedapplication.125.*/126.publicvoiddismissAndSwitch()127.finalintnumIcons=mIcons.length;128.RecentTagtag=null;129.for(inti=0;i=0)163./Thisisanactivetask;itshouldjustgototheforeground.164.finalActivityManageram=(ActivityManager)165.getContext().getSystem

16、Service(Context.ACTIVITY_SERVICE);166.am.moveTaskToFront(tag.info.id,ActivityManager.MOVE_TASK_WITH_HOME);167.elseif(tag.intent!=null)168.tag.intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY169.|Intent.FLAG_ACTIVITY_TASK_ON_HOME);170.try171.getContext().startActivity(tag.intent);172.catch(

17、ActivityNotFoundExceptione)173.Log.w(Recent,Unabletolaunchrecenttask,e);174.175.176.177.178./*179.*Setupandshowtherecentactivitiesdialog.180.*/181.Override182.publicvoidonStart()183.super.onStart();184.reloadButtons();185.if(sStatusBar!=null)186.sStatusBar.disable(StatusBarManager.DISABLE_EXPAND);18

18、7.188.189./receivebroadcasts190.getContext().registerReceiver(mBroadcastReceiver,mBroadcastIntentFilter);191.192.mHandler.removeCallbacks(mCleanup);193.194.195./*196.*Dismisstherecentactivitiesdialog.197.*/198.Override199.publicvoidonStop()200.super.onStop();201.202.if(sStatusBar!=null)203.sStatusBa

19、r.disable(StatusBarManager.DISABLE_NONE);204.205.206./stopreceivingbroadcasts207.getContext().unregisterReceiver(mBroadcastReceiver);208.209.mHandler.postDelayed(mCleanup,100);210.211.212./*213.*Reloadthe6buttonswithrecentactivities214.*/215.privatevoidreloadButtons()216.217.finalContextcontext=getC

20、ontext();218.finalPackageManagerpm=context.getPackageManager();219.finalActivityManageram=(ActivityManager)220.context.getSystemService(Context.ACTIVITY_SERVICE);221.finalListrecentTasks=222.am.getRecentTasks(MAX_RECENT_TASKS,ActivityManager.RECENT_IGNORE_UNAVAILABLE);223.224.ActivityInfohomeInfo=225.newIntent(Intent.ACTION_MAIN).add

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1