今天仔细研究了一下 Activity 周期,有一个问题没弄清楚,想请教一下。
App 有两个 Activity,一个叫 MainActivity,一个叫 ChildActivity,如下:
MainActivity:
ChildActivity:
其中 ChildActivity 的"第 3 次点击"是对应保存在 MainActivity.java 这个 Class 里面的一个 static int 型变量。
现在想实现的效果是:
1.按“启动”按钮之后,从 MainActivity 跳转至 ChildActivity,点击次数加 1。
2.按“返回”键之后,从 ChildActivity 返回至 MainActivity,次数不清零,再次点击“启动”按钮后,点击次数在原来基础上再加 1。
3.按"Home"键之后,从当前的 Activity 跳到手机 Home 屏,这时候次数清零,再通过点击 Home 屏图标进入 App 时,点击次数重置为 0。
按照 Android 的生命周期那个图,
如果把 ClickCount=0 语句放在 onCreate 里面,则上面效果 3.无法实现,跳转至 Home 屏后不会清零;
如果把 ClickCount=0 语句放在 onStart 或者里面,则每次点击按钮后都会重置为 0 ;
如果把 ClickCount=0 语句放在 onResume 或者里面,则每次点击按钮后都会重置为 0 ;
如果把 ClickCount=0 语句放在 onPause 里面,则每次点击按钮后都会重置为 0 ;
如果把 ClickCount=0 语句放在 onStop 里面,则每次点击按钮后都会重置为 0 ;
如果把 ClickCount=0 语句放在 onDestroy 里面,则上面效果 3.无法实现,跳转至 Home 屏后不会清零;
现在想问一下,到底怎么处理能够实现上面的效果呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.