Android基础知识_Activity SingleTop模式示例
来源:互联网 发布:大二java课程设计题目 编辑:程序博客网 时间:2024/05/17 07:40
一、示例工程LaunchMode代码
布局文件activity_main.xml代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/btnStartMainAty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动MainActivity" /> <Button android:id="@+id/btnStartBAty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动BAty" /></LinearLayout>MainActivity.java文件代码如下:
package com.example.launchmode;import org.apache.http.conn.ManagedClientConnection;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView)findViewById(R.id.textView);/* 使TextView呈现信息: 任务栈ID, 当前Activity的ID(即Activity实例的ID) */textView.setText(String.format("TaskID: %d\nCurrent Activity ID: %s", getTaskId(), toString()));findViewById(R.id.btnStartMainAty).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartActivity(new Intent(MainActivity.this, MainActivity.class));}});findViewById(R.id.btnStartBAty).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartActivity(new Intent(MainActivity.this, BAty.class));}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}布局文件activity_baty.xml代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/btnStartMainAty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动MainActivity" /> <Button android:id="@+id/btnStartBAty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动BAty" /></LinearLayout>BAty.java文件代码如下:
package com.example.launchmode;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;public class BAty extends Activity {private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_baty);textView = (TextView)findViewById(R.id.textView);/* 使TextView呈现信息: 任务栈ID, 当前Activity的ID(即Activity实例的ID) */textView.setText(String.format("TaskID: %d\nCurrent Activity ID: %s", getTaskId(), toString()));findViewById(R.id.btnStartMainAty).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartActivity(new Intent(BAty.this, MainActivity.class));}});findViewById(R.id.btnStartBAty).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartActivity(new Intent(BAty.this, BAty.class));}});}}AndroidManifest.xml文件代码如下:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.launchmode.MainActivity" android:label="@string/app_name" android:launchMode="singleTop" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".BAty" android:label="BAty" > </activity></application>
二、程序运行截图
三、程序描述
[启动MainActivity],会发现SingleTop模式,TaskID是不会发生改变的。[启动BAty]所使用的任务栈是同一个任务栈(因为TaskID号没有改变),只是实例是不一样的,因为它是BAty的实例。[后退]记录此时的实例MainActivity(注:记录@符后面的数字),[启动BAty],再[启动MainActivity]我们会发现这两个MainActivity的实例是不一样的,[后退],再[后退]可以再次确认这两个MainActivity的实例是不一样的。是什么意思呢?也就意味着在同一个栈里面如果说我们指明Activity的启动模式是SingleTop的话,如果此时这个Activity处于栈顶,那么你只能创建一个实例;如果当前不处于栈顶,会创建新的实例。
0 0
- Android基础知识_Activity SingleTop模式示例
- Android基础知识_Activity标准启动模式示例
- Android基础知识_Activity SingleTask模式示例
- Android基础知识_Activity SingleInstance模式示例
- Android基础知识_Activity启动模式
- Android基础知识_Activity组件
- Android基础知识_Activity生命周期
- Android开发_Activity启动模式
- Android基础知识_Activity之间传递参数
- Android -- 启动模式(singleTop启动模式)
- Android中Activity启动模式-SingleTop模式
- Android活动Acitivity启动模式之singleTop
- Android活动Acitivity启动模式之singleTop
- android四种加载模式 singletask、singletop
- android-activity之singleTop启动模式
- Android活动Acitivity启动模式之singleTop
- android:Activity启动模式之singleTop
- android学习笔记---34_Activity的启动模式
- 使用phonegap建立安卓webapp项目及其问题总结
- 嫌工资少,先来看看你值多少钱
- R语言数据储存与读取
- PHP学习笔记01:php中的单引号、双引号和转义字符
- C++类、结构、对象内存浅析(sizeof)(很重要)
- Android基础知识_Activity SingleTop模式示例
- 批处理文件启动windows服务
- 山寨技术下的网站图片服务器(NGINX)
- jpa2.0动态查询机制
- offsetwidth/clientwidth的区别
- poj 2229 2的次方个数dp
- linux proc/net/
- 加载txt文件中的数据到MySQL表中
- 下载网页文件到本地