知识库

wiki.linsakura.com

用户工具

站点工具


wiki:book:notes:android:第一行代码-android-第2版-郭霖:第2章

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
wiki:book:notes:android:第一行代码-android-第2版-郭霖:第2章 [2022/04/06 13:47]
博丽幻月 [活动被回收时数据的保存]
wiki:book:notes:android:第一行代码-android-第2版-郭霖:第2章 [2022/04/06 14:07] (当前版本)
博丽幻月 [启动活动的最佳写法]
行 1: 行 1:
 ====== 第2章 先从看得到的入手——探究活动 ====== ====== 第2章 先从看得到的入手——探究活动 ======
-====== 活动Activity ======+===== 活动Activity =====
 主要用于和用户进行交互。\\ 主要用于和用户进行交互。\\
-====== 启动的主活动 ======+===== 启动的主活动 =====
 在''<activity>''标签的内部加入''<intent-filter>''标签,添加下面两句声明即可:\\ 在''<activity>''标签的内部加入''<intent-filter>''标签,添加下面两句声明即可:\\
 <code xml> <code xml>
行 8: 行 8:
 <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
 </code> </code>
-====== 通知消息Toast ======+===== 通知消息Toast =====
 用途:将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。\\ 用途:将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。\\
 <code java> <code java>
行 21: 行 21:
 可以通过''findViewById()''获取布局文件中定义的元素。\\ 可以通过''findViewById()''获取布局文件中定义的元素。\\
 ''setOnClicklistener()''方法为按钮注册一个监听器,点击按钮时就会执行监听器中的''onClick()''方法。\\ ''setOnClicklistener()''方法为按钮注册一个监听器,点击按钮时就会执行监听器中的''onClick()''方法。\\
-====== 活动中使用Menu ======+===== 活动中使用Menu =====
 ''getMenuinflater()''方法能够得到''Menuinflater''对象,再调用它的''inflate()''方法就可以给当前活动创建菜单。\\ ''getMenuinflater()''方法能够得到''Menuinflater''对象,再调用它的''inflate()''方法就可以给当前活动创建菜单。\\
-====== 销毁一个活动 ======+===== 销毁一个活动 =====
 ''finish()''\\ ''finish()''\\
-====== Intent交互 ======+===== Intent交互 =====
 Intent是Android程序中各组件之间**进行交互**的一种重要方式,它不仅可以指明当前组件**想要执行的动作**,还可以在不同组件之间**传递数据**。\\ Intent是Android程序中各组件之间**进行交互**的一种重要方式,它不仅可以指明当前组件**想要执行的动作**,还可以在不同组件之间**传递数据**。\\
 Intent一般可被用于**启动活动**、**启动服务**、**发送广播**等场景。\\ Intent一般可被用于**启动活动**、**启动服务**、**发送广播**等场景。\\
 Intent分两种:显示Intent、隐式Intent。\\ Intent分两种:显示Intent、隐式Intent。\\
-====== 使用隐式Intent ======+===== 使用隐式Intent =====
 <code java> <code java>
 intent.addCategory("com.exampte.activitytest.MY_CATEGORY"); intent.addCategory("com.exampte.activitytest.MY_CATEGORY");
行 42: 行 42:
 </activity> </activity>
 </code> </code>
-====== 更多隐式Intent用法 ======+===== 更多隐式Intent用法 =====
 不仅可以启动自己程序内的活动,还可以启动其他程序的活动。\\ 不仅可以启动自己程序内的活动,还可以启动其他程序的活动。\\
 <code java> <code java>
行 54: 行 54:
 intent.setData(Uri.parse("tel:18886")); intent.setData(Uri.parse("tel:18886"));
 </code> </code>
-====== 向下一个活动传递数据 ======+===== 向下一个活动传递数据 =====
 使用''putExtra()''存放数据到intent:\\ 使用''putExtra()''存放数据到intent:\\
 <code java> <code java>
行 66: 行 66:
 String data = intent.getStringExtra("extra_data"); String data = intent.getStringExtra("extra_data");
 </code> </code>
-====== 返回数据给上一个活动 ======+===== 返回数据给上一个活动 =====
 FirstActivity按钮onClick()中添加:\\ FirstActivity按钮onClick()中添加:\\
 <code java> <code java>
行 95: 行 95:
 </code> </code>
 如果使用''Back键''回到FirstActivity,则重写SecondActivity中的''onBackPressed()''方法即可。\\ 如果使用''Back键''回到FirstActivity,则重写SecondActivity中的''onBackPressed()''方法即可。\\
-====== 活动的生存期 ======+===== 活动的生存期 =====
   - onCreate(): 第一次被创建,初始化操作   - onCreate(): 第一次被创建,初始化操作
   - onStart(): 不可见变为可见   - onStart(): 不可见变为可见
行 103: 行 103:
   - onDestroy(): 被销毁之前   - onDestroy(): 被销毁之前
   - onRestart(): 停止状态变为运行状态前调用   - onRestart(): 停止状态变为运行状态前调用
-====== 活动被回收时数据的保存 ======+===== 活动被回收时数据的保存 =====
 ''onSaveinstanceState()''回调方法,这个方法可以保证在活动被回收之前一定会被调。 ''onSaveinstanceState()''回调方法,这个方法可以保证在活动被回收之前一定会被调。
 <code java> <code java>
行 126: 行 126:
 } }
 </code> </code>
-====== 活动的启动模式 ====== +===== 活动的启动模式 ===== 
- +启动模式4种:stantdard、singleTop、singleTask、singleInstance。\\ 
 +可以在''AndroidManifest.xml''中通过给''<activity>''标签指定''android:launchMode''属性来选择启动模式。\\ 
 +standard是活动默认的启动方式。\\ 
 +===== 知晓当前是在哪一个活动 ===== 
 +''getClass().getSimpleName()''\\ 
 +===== 随时随地退出程序 ===== 
 +<code java> 
 +android.os.Process.killProcess(android.os.Process.myPid()); 
 +</code> 
 +''killProcess()''方法只能用于杀掉当前程序的进程。\\ 
 +===== 启动活动的最佳写法 ===== 
 +在要启动的活动中添加:\\ 
 +<code java> 
 +public static void actionStart(Context context, String data1, String data2) { 
 +    Intent intent = new Intent(context, SecondActivity.class); 
 +    intent.putExtra("param1", data1); 
 +    intent.putExtra("param2", data2); 
 +    context.startActivity(intent); 
 +
 +</code> 
 +然后通过下面代码启动:\\ 
 +<code java> 
 +SecondActivity.actionStart(FirstActivity.this, "data1", "data2"); 
 +</code>
wiki/book/notes/android/第一行代码-android-第2版-郭霖/第2章.1649224046.txt.gz · 最后更改: 2022/04/06 13:47 由 博丽幻月