Android中Activity的引导方式launcherMode的四种方式。

原创 2015年07月10日 20:03:39

         在Android系统中活动Activity的加载模式是大致可以分为四种,分别是:standard、singleTop、singleTask、singleInstance。而针对于Activity的不同的加载模式直接决定着相应的Activity的生命周期。设置Activity的加载模式实在AndroidManifest.xml中<activity>的配置中加入Android:launcherModel="xxxxxxx".

1.standard

standard 是android Activity的默认加载模式,所以使用标准加载模式时可以不进行配置设置,同样你也可以进行相应的配置。

看下面一个实例:下面展示的MainActivity得代码:

package com.example.testlaunchermodel;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView text = (TextView) findViewById(R.id.textView1);
		text.setText(this.toString());
		Button but = (Button) findViewById(R.id.button1);
		but.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setClass(MainActivity.this, MainActivity.class);
				startActivity(intent);
			}});
	}

	@Override
	public 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;
	}

}
SecendActivity的代码结构如下:

package com.example.testlaunchermodel;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;

import android.widget.Button;
import android.widget.TextView;

public class SecendActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_secend);
		TextView text  = (TextView) findViewById(R.id.threadId);
		text.setText(this.toString());
		Button but = (Button)findViewById(R.id.secendButton);
		but.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setClass(SecendActivity.this, MainActivity.class);
				startActivity(intent);
				
			}});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.secend, menu);
		return true;
	}

}
分别在MainAcitivy和SecendActivity的布局上添加一个TextView和Button。TextView用于显示现在的Activity的序列号,button的事件用来完成不同的Activity之间的跳转活动。

从MainActivity跳转到SecendActivity再跳转回来这个循环的过程会发现每次创建的活动的序列号都是不一样的从而说明:

standard的加载模式不管是否已经存在Activity都会再次创建一个Acitivy,同时将新创建的Activity加入栈顶。所以在这种加载模式下需要多次返回才能退出。

下面我不再一一介绍具体的代码,只需在上述代码基础修改相应的Activity的加载模式就好。就可以看到相应的效果。

2.singleTop

singleTop模式就是在Activity处在栈顶时直接利用不在栈顶时创建新的Activity压入栈。

3.singleTask

singleTask模式如果发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前。

4.singleInstance

singleInstance模式较为特殊:他会每次创建时创建一个新的栈用于存储自己。


Android中launcherMode="singleTask"详解【android源码解析六】

android中launcherMode有4中属性:standard(默认), singleTop,singleTask和 singleInstance;网上有好多例子讲解这四种关系的:下面我列举几个...

Activity 的LauncherMode, 不可遗漏的知识点

介绍了Activity四种启动模式:standard, singleTop, singleTask, singleInstance各种的特点和应用场景...

Android基础总结之三:Activity的四种Launcher Mode

launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task...

基础总结篇之二:Activity的四种launchMode

合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。《老子》 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些。作为一个程...
  • liuhe688
  • liuhe688
  • 2011年09月06日 19:17
  • 219591

Android更改桌面应用程序launcher的两种方式

launcher,也就是android的桌面应用程序。下图是我正在使用的魅族手机的launcher应用程序:    接下来我们要开发一个自己的launcher,使其替代系统的默认launcher...

Android 定制自己的launcher

launcher(安卓系统桌面启动器) launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为Launcher。Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Laun...

Android Launcher分析和修改3——Launcher启动和初始化

前面两篇文章都是写有关Launcher配置文件的修改,代码方面涉及不多,今天开始进入Launcher代码分析。 我们开机启动Launcher,Launcher是由Activity Manager启动...

Android源码解析之(十)-->Launcher启动流程

Launcher程序就是我们平时看到的桌面程序,它其实也是一个android应用程序,只不过这个应用程序是系统默认第一个启动的应用程序,这里我们就简单的分析一下Launcher应用的启动流程。 不同...

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应...

Android launcher 源码 app 的启动方式

关键Java代码路径 Launcher3\src\com\android\launcher3\LauncherModel.java private void loadAllApps() { ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中Activity的引导方式launcherMode的四种方式。
举报原因:
原因补充:

(最多只允许输入30个字)