关闭

android back键 生命周期

标签: android音乐service手机
4808人阅读 评论(0) 收藏 举报
分类:

Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.

 

Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.

 

现在的情形是,一个应用程序带有启动画面或者启动动画,进入程序后进行操作,当应用程序退到主Activity的时候,再按back键或者程序中自己写的back按钮,此时程序会结束当前主Activity,当再次点击应用程序图标时,程序会重新打开,会从头显示启动画面,对于用户来说,就知道这个程序刚才已经被结束掉了,而用户的本意是显示桌面,为什么我退出的时候都没有提醒一下!例如带有启动画面的音乐播放软件,如果程序没有做任何处理,当主Activity退出时,播放音乐的服务还没有结束,当程序退出后音乐还在播放,当用户再次点击桌面上的音乐程序图标时,会再次执行启动画面,对用户来说,怎么程序还在运行的时候,又重新打开了一个新的,是不是我这样操作会启动两个音乐播放器啊!针对这样的情况,就需要在主Activity里按back时候时行监听,询问用户是退出还是隐藏,或者执行程序中设置的一个默认操作。如果是退出,我们就需要结束程序进程,Activity、Service等等,如果是隐藏,我们就需要实现手机上按Home时的效果,也就是隐藏后,当用户再次单击桌面上程序图标时,不会执行启动画面,而是直接进入程序栈中最上层退出时正在显示的Activity。

 

实现按Home键时隐藏程序的效果:

1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键

2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可

3
4
5
6
7
8
9
10
11
    @Override
public void onBackPressed() {
    //实现Home键效果
    //super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式了
    Intent i= new Intent(Intent.ACTION_MAIN);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.addCategory(Intent.CATEGORY_HOME);
    startActivity(i); 
}
3
  

退出应用程序的实现:可以自己写个方法,例如:

3
4
5
6
7
8
9
    public void exitProgrames(){
    Intent startMain = new Intent(Intent.ACTION_MAIN);
            startMain.addCategory(Intent.CATEGORY_HOME);
            startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(startMain);
            android.os.Process.killProcess(android.os.Process.myPid());
}

需要添加权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />

 

出处:http://www.cnblogs.com/wujd/archive/2011/11/17/2251991.html

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Activity的生命周期,BACK键和HOME对生命周期的影响

下面这张图详细的描述了Activity的整个生命周期: 直接上代码,注意看注释:   [java] view plaincopy pub...
  • shineflowers
  • shineflowers
  • 2014-02-13 15:34
  • 6334

当点击back键和home键时activity的生命周期

activity正常的生命周期public class HelloActivity extends Activity { public static final String TAG = "H...
  • uniquemei
  • uniquemei
  • 2016-08-10 18:02
  • 2143

Activity点击Home键,Back()键所走的生命周期

今天做了一个小测试,当在一个Activity中,点击Home键时,打印出的log,中Activity的生命周期依次走的是
  • u010680097
  • u010680097
  • 2016-08-05 14:21
  • 3537

android back键 生命周期

Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Ac...
  • zwq1457
  • zwq1457
  • 2012-12-28 10:01
  • 430

Android笔记 activity生命周期 Tasks and back stack回退栈

正常打开一个应用,先后调用Activity的onCreate、onStart、onResume 正常退出一个应用,先后调用Activity的onPause、onStop、onDestroy  当前界...
  • u011109881
  • u011109881
  • 2014-10-11 09:37
  • 634

Activity的生命周期&finish方法&back键&home键&dialog对话框

最开始学Android的时候就会学Activity的生命周期函数,也知道具体怎么在跑。 但是对于一些特殊的按键,比如按home,back等键却没有详细的看看运行的周期函数。 最近工作中在解决一个b...
  • hanhan1016
  • hanhan1016
  • 2015-08-25 16:03
  • 1716

Activity点击Home键,Back()键所走的生命周期

今天做了一个小测试,当在一个Activity中,点击Home键时,打印出的log,中Activity的生命周期依次走的是
  • u010680097
  • u010680097
  • 2016-08-05 14:21
  • 3537

当点击back键和home键时activity的生命周期

activity正常的生命周期public class HelloActivity extends Activity { public static final String TAG = "H...
  • uniquemei
  • uniquemei
  • 2016-08-10 18:02
  • 2143

android活动生命周期

  • 2017-10-28 11:46
  • 33.23MB
  • 下载

测试Android Activity生命周期Demo

  • 2014-11-08 01:36
  • 923KB
  • 下载
    个人资料
    • 访问:271650次
    • 积分:2926
    • 等级:
    • 排名:第13939名
    • 原创:32篇
    • 转载:71篇
    • 译文:6篇
    • 评论:36条
    个人网站
    微信
    博客专栏