Android 匿名启动activity 启动系统activity

一般我们使用Intent 进行activity跳转时我们都知道需要跳转的activity的名字,例如:

				Intent intent=new Intent(FirstActivity.this,SecondActitivy.class);
				startActivity(intent);

当SecondActitivy.class和FirstActivity不再同一个App的时候,我们就需要用到匿名启动,

匿名启动:

首先需要设置被启动的SecondActivity 的xml配置文件:

   <activity android:name="testIntent.SecondActitivy" >
            <intent-filter>
                <action android:name="toSecondPage" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

FirstActivity 可以利用<action android:name="toSecondPage" />

来找到 SecondActivity

FirstActivity代码如下:

<span style="white-space:pre">				</span>Intent intent=new Intent();
				intent.setAction("toSecondPage");
				startActivity(intent);

这样就可以利用ActionName调到非本App的Activity

启动系统activity也是这样实现:

通过一个系统提供的ActionName来跳转到系统的Activity,同时可以附加一些消息;(xml 就是4个简单的按钮)

package testIntent;

import java.net.URL;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.example.androidtest.R;

public class FirstActivity extends Activity implements OnClickListener{

	private Button toWeBButton;
	private Button toPicButton;
	private Button toMesButton;
	private Button toPhoneButton;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.first_activity_main);

		toWeBButton=(Button) findViewById(R.id.toWeb);
		toPicButton=(Button) findViewById(R.id.toPic);
		toMesButton=(Button) findViewById(R.id.toMes);
		toPhoneButton=(Button) findViewById(R.id.toPhone);

		toWeBButton.setOnClickListener(this);
		toPicButton.setOnClickListener(this);
		toMesButton.setOnClickListener(this);
		toPhoneButton.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		Intent intent=new Intent();

		if(v.equals(toWeBButton)){//跳转到 网页 百度首页
			intent.setAction(Intent.ACTION_VIEW);
			Uri uri=Uri.parse("http://www.baidu.com");
			intent.setData(uri);
		}else if(v.equals(toPicButton)){//打开系统图片
			intent.setAction(Intent.ACTION_GET_CONTENT);
			intent.setType("image/*");//打开所有的图片, 如果需要获取图片就需要写回调函数
		}else if(v.equals(toMesButton)){//发送消息
			intent.setAction(Intent.ACTION_SEND);
			intent.setType("text/plain");
			intent.putExtra(Intent.EXTRA_TEXT, "这是我第一次这样发信息");

		}else if(v.equals(toPhoneButton)){//拨打电话
			intent.setAction(Intent.ACTION_VIEW);
			Uri uri=Uri.parse("tel:1839860592");
			intent.setData(uri);
		}
		startActivity(intent);
	}

}
时间: 2024-11-06 03:36:59

Android 匿名启动activity 启动系统activity的相关文章

Android系统以及Activity启动讲解

一.Android系统启动 Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用.启动的过程如下图所示:(图片来自网上,后面有地址) Android系统整个过程如下: (一) Init进程的启动 init进程,它是一个由内核启动的用户级进程.内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程.init

【Android高级】Android系统以及Activity启动解说

一.Android系统启动 Android框架架构图:(来自网上.我认为这张图看起来非常清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用.启动的步骤例如以下图所看到的:(图片来自网上,后面有地址)   Android系统整个步骤例如以下: (一) Init进程的启动 init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被加载内存,開始执行,并已初始化全部的设备驱动程序和数据结构等)之后.就通过启动一个用户级程序init的方式,完

【Android高级】Android系统以及Activity启动讲解

一.Android系统启动 Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用.启动的过程如下图所示:(图片来自网上,后面有地址)   Android系统整个过程如下: (一) Init进程的启动 init进程,它是一个由内核启动的用户级进程.内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程.in

Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面

其实这是很简单的一个问题.但是这还是要对android中activity的启动模式有相当的理解才行,当点击home键的时候,懂Android的人都知道,他会把当前activity放到后退栈中, 栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算.人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底.向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称为出栈或退栈,它是把栈

android activity启动的4种方式记录及打开其他应用的activity的坑

Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence. standard是最常见的activity启动方式,也是默认的启动的方式.当启动一个activity的时候他将进入返回栈的栈顶.系统不会管栈内是否有相同的activity,方式像后入先出. singleTop方式是在活动启动的时候,系统先判定栈顶是否有相同的活动,如果没有则新建活动,否则将不新建活动.而是直接使用他. singleTask方式在活动启动的时候,系统先判定栈

Android中Activity启动模式全面解析

在Android应用中, Activity是最核心的组件, 如何生成一个Activity实例, 可以选择不同的启动模式, 即LaunchMode. 启动模式主要包括: standard, singleTop, singleTask, singleInstance. 标准模式在每次启动时, 都会创建实例; 三种单例模式, 会根据情况选择创建还是复用实例. 在Activity启动中, 创建实例的生命周期: onCreate -> onStart -> onResume; 重用实例的生命周期: on

android activity 启动过程分析(source code 4.4)

说实话,android source code从2.3到4.4变化是蛮多的,尤其是media部分,虽然总的框架是没有多大变化,但是找起代码来看还是挺麻烦的.在android里面最受伤的是使用了java,jni,jvm,Nativity c++等等,各种设计模式横行,当然在学习源码过程中也意识了编程语言基础,数据结构,设计模式的重要性. android source code 经典的地方: 1. 大量使用了各种设计模式如单例模式,装饰模式,工程工厂模式,适配器模式等等. 2. 使用了binder驱

Android Activity启动模式

在Android的联机文档中,有对Activity的简单介绍,现在通过编写代码对Activity的启动模式做一个深入的理解.在配置文件AndroidManifest.xml中,activity元素的android:launchMode属性用来配置对应Activity的启动模式,目前有以下四种启动模式:1.standard2.singleTop3.singleTask4.singleInstance如果不对Activity设置启动模式,默认就是standard模式 一.standard 请看以下代

[Android UI] Service里面启动Activity和Alertdialog

启动Activity源码:(记得要加上Intent.FLAG_ACTIVITY_NEW_TASK) Intent intent = new Intent(); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClass(getApplicationContext(),FileBrowserActivity.class); startActivity(intent); 原因:如果一个外部的Activity Context调用sta