Activity显式启动-Activity隐式启动

Android显式启动activity和隐式启动activity分别都是怎么启动?请举例说明二者使用时的注意事项。 在Android中,启动Activity主要有两种方式:显式启动(Explicit Intent)和隐式启动(Implicit Intent)。这两种方式在启动Activity时各有特点和注意事项。 阅读详情

Activity的启动方法

显式启动:
明确指定要启动的Activity的class或者包名.activity类名

方式一:class跳转
Intent intent = new Intent(Activity1.this,Activity2.class);
startActivity(intent);

方式二:包名.类名跳转
Intent intent = new Intent();
intent.setClassName(context,“com.maizi.lasson.activitylasson1”);
startActivity(intent);

方式三:ComponentName跳转
Intent intent = new Intent();
intent.setComponent(new Component(context,Activity2.class))
startActivity(intent);

隐式启动:
设置启动过滤器,通过指定的action或action和data属性,系统会查找符合条 件的activity,并启动它

方式一:构造时传入actionName
Intent intent = new Intent(“com.maizi.lasson.SecondActivity”);
startActivity(intent);

方式二:构造完成后设置actionName
Intent intent = new Intent();
intent.setAction(“com.maizi.lasson.SecondActivity”);
startActivity(intent);

注意:如果自己定义的某个Activity要通过隐式启动,在AndroidManifest.xml那么必须加上android.intent.category.DEFAULT,否则不起作用

关闭Activitiy:调用finish();

package com.maizi.lesson.activity.activitylesson1;

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

public class MyActivity extends Activity{

Button btnStart;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    btnStart = (Button) findViewById(R.id.btn_start_second);
    btnStart.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            //在这里启动第二个Activity

            //显式启动的第一种写法
            Intent intent = new Intent();
            intent.setClass(MainActivity.this,SecondActivity.class);

            startActivity(intent);

            //显式启动的第二种写法
            Intent intent1 = new Intent();
            intent.setClass(MainActivity.this,"com.maizi.lesson.activity.SecondActivity");

            startActivity(intent1);

            //显式启动的第三种写法
            Intent intent1 = new Intent();
            ComponentName componentName = new ComponentName(MainActivity.this,SecondActivity.class);
            intent.setComponent(componentName);
            startActivity(intent);

            //隐式启动的第一种写法
            Intent intent = new Intent("abcd.SecondActivity");
            startActivity(intent);

            //隐式启动的第二种写法
            Intent intent = new Intent();
            intent.setAction("abcd.SecondActivity");
            startActivity(intent);
        }
    });
}

}

package com.maizi.lesson.activity.activitylesson1;

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

public class MyActivity extends Activity{

Button btnStart;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    btnStart = (Button) findViewById(R.id.btn_start_second);
    btnStart.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            //在这里启动第二个Activity

            //显式启动的第一种写法
            Intent intent = new Intent();
            intent.setClass(MainActivity.this,SecondActivity.class);

            startActivity(intent);

            //显式启动的第二种写法
            Intent intent1 = new Intent();
            intent.setClass(MainActivity.this,"com.maizi.lesson.activity.SecondActivity");

            startActivity(intent1);

            //显式启动的第三种写法
            Intent intent1 = new Intent();
            ComponentName componentName = new ComponentName(MainActivity.this,SecondActivity.class);
            intent.setComponent(componentName);
            startActivity(intent);

            //隐式启动的第一种写法
            Intent intent = new Intent("abcd.SecondActivity");
            startActivity(intent);

            //隐式启动的第二种写法
            Intent intent = new Intent();
            intent.setAction("abcd.SecondActivity");
            startActivity(intent);
        }
    });
}

}

package com.maizi.lesson.activity.activitylesson1;

import android.app.Activity;
import android.os.Bundle;

public class SecondActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Button bthFinish = (Button) findViewById(R.id.bth_finish_self);
    bthFinish.setOnClickListener(){
        @Override
        public void onClick(View v){
            //关闭自己 SecondActivity

            SecondActivity.this.finish();
        }
    });
}

}

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

<TextView
android:layout_width=“wrap_content”

android:layout_height="wrap_content"
android:text="这是第二个界面"/>

<Button
android:id="@+id/btn_finish_self"
android:layout_width="wrap_content"
  
android:layout_height="wrap_content"
android:text="关闭"/>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

<Button
android:id="@+id/btn_start_second"
android:layout_width=“wrap_content”

android:layout_height="wrap_content"
android:text="启动第二个界面"/>






Xshell 连接 kali 虚拟机教程 启动ssh服务,启动后重新查看ssh服务状态,如下图active(running)正常。至此便可以直接使用Xshell登录kali系统了。至此虚拟机已经可以上网。-查看ssh服务状态。 阅读详情

相关推荐

水星路由器+群晖NAS+外网访问

水星路由器+群晖NAS+外网访问 有了公网IP,家里是水星路由器的 怎么设置外网访问 1.先电脑登录群晖的http://【你的群晖名】.quickconnect.to/ 2.【控制面板】进入设置 3.选择synology依次设置 ,【主机名称】就是你的名称。注意:左下角第7步,一定勾选。 4.下面进入192.168.1.1水星路由器设置。【IP与MAC绑定】点击NAS对应的【绑定】注意,点这里之前Nas一定设置了固定内网ip(后面补充 )。 5.【高级用户】-虚【拟服务器】。常用服务器不用选,其他的对应

wjxue201的博客 2600

Intent详解(一)----显、隐式开启Activity

Intent开启Activity 1.Intent的作用 Intent是一个可以消息传递对象,可以通过它来进行组件之间的信息传递。Intent主要有以下三个作用: l  开启一个activity l  开启一个service l  发送广播消息 本篇主要介绍Intent如何开启一个Activity。 Intent可以启动Activity,启动的方式有显式启动和隐式启动两种。显

zys_1997的博客 2万+

常见卫星图源下载教程

上面列出的8个常见的亚米级别数据源都可以通过xyz协议或者wmts/wms协议进行下载。这些协议是什么?地理信息数据为了方便网络传输,制定了一系列的地理数据传输标准(wms/wmts/xyz等)。协议特点优点缺点栅格数据支持矢量数据支持WMS通过HTTP请求获取GIS数据,服务器会将数据渲染成图像高度定制的地图;交互性强服务器渲染图像,响应时间较长支持有限支持WMTS提供预渲染的地图瓦片速度快,因为地图瓦片可以预先生成并在请求时快速提供瓦片的内容是预先确定的,无法进行定制支持。

锐多宝的地理空间 1万+

Intent显式启动和隐式启动

众所周知 Android组件的启动模式有两种 显式调用和隐式调用,这两种调用方式从字面意思就很好理解,显式调用需要指定被启动的组件比如:Intent i= new Intent(); i.setClass(this,SecondActivity.class); startActivity(i);隐式调用则不需要。那么隐式调用是怎么匹配找到被启动的组件呢?答案是IntentFilter,在Manife

u010723811的专栏 4241

基于STM32的3D打印机控制

通过本项目,我们成功搭建了一个基础的3D打印机控制系统,能够控制步进电机和加热元件。这为使用STM32开发功能丰富的3D打印机提供了基础,您可以在此基础上继续扩展功能,如增加LCD显示、SD卡存储、联网控制等功能。在这个项目中,我们将使用STM32微控制器开发一个基础的3D打印机控制系统。通过控制步进电机、加热元件和温度传感器,我们将实现一个简单的FDM(熔融沉积制造)3D打印机控制。- 检查PWM信号的生成功能,确认加热元件的控制逻辑是否正常。- 增加适当的滤波和校准算法,以提高温度读取的准确性。

2401_88938661的博客 1504

Matlab Arduino 硬件支持包安装 MATLAB_Support_Package_for_Arduino_Hardware

Matlab Arduino硬件支持包离线安装

weixin_43283734的博客 2842

第四例:Intent启动Activity的几种方式(一)

activity的启动模式有四种,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 一、standard xml中配置,android:launchMode = "standard" <activity android:name=".app.ui.IntentLaunchModeActivity"

android_9527's blog 4234

高通拨号流程介绍

本文介绍了高通平台(如SDX55)中APSS(A7处理器)与ModEM(Q6处理器)间的通信机制。

四儿家的小祖宗的博客 1068

显式和隐式Intent来启动活动

先看显式效果图跟代码: 这里我们用显式Intent打开了一个美国队长的活动,这里有个按钮用于换图。 布局文件就不放了哈,那些按钮初始化后,直接在onCreate()中为打开活动的按钮设置监听事件btn_captainAmerica.setOnClickListener(new View.OnClickListener() { @Override

Zero_uou的博客 690

C语言实现惯导更新算法(机械编排)

四元数可用于描述刚体转动或姿态变换,与方向余弦阵相比,表达简洁。四元数是一个包含四个元素的列向量,列向量的第一个元素表示刚体围绕旋转轴转过的角度大小,其余3个元素代表了旋转轴的方向。

十八与她的博客 1730

KylinOS 离线安装 MinIO【图文步骤】

在国产操作系统 KylinOS 中安装 MinIO,详细步骤...

甘蓝的专栏 1536

Activity之Intent、生命周期、启动模式

1.Activity的理解 Activity 直译为活动,它是Android定义的四大应用组件之一,也是最重要用的最多的 Activity用来提供一个能让用户操作并与之交互的界面 一个应用有多个界面,也就是包含多个Activity(还存在单Activity+多Fragment 的) 打电话、发短信、拍照、发邮件等功能都是通过Activity来做的 2.Intent的理解 Intent 直...

追梦的鱼儿 1564

Pyinstaller打包为可执行文件编码错误的问题

Pyinstaller打包为可执行文件编码错误的问题 写好的python程序在vscode上运行没有任何问题,将程序利用pyinstaller打包后,运行程序发生了错误。 错误代码 UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce in position 20-21:invalid cotinuation byte 网上找到的解决方案是: 1.在命令行中输入 chcp 65001 2.按正常方式进行封装 pyinstaller

xuefeng_he的博客 1560

Android组件 Activity的显式启动与隐式启动详解

显式启动: 显式启动比较简单,首先创建一个Intent,指定应用程序上下文和需要启动的Activity,然后调用startActivity来启动新的Activity。 <!--AndroidManifest.xml--> <activity android:name=".SecondActivity"></activity> //启动Activity Intent it = new Intent(this, SecondActivity.class); startAct

3Blue1Red的博客 4751

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

activity显式启动和隐式启动

1.当虚拟机卡死无法操作时,通过终端命令杀死进程 (1)ps -ef | grep -i “avd” (2) kill -9 7328 -9是强行关闭,7328是进程端口 2.当Android Studio卡死的时候,通过终端命令杀死进程 (1)ps -ef | grep -i “studio” (2)kill -9 xxxx 杀掉对应的进程 3.在做activity之间的跳转时,有两种启动方式: (1)显式启动 Intent intent = new Intent(); intent.se

qq_41390028的博客 2246

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

显式启动activity与隐式启动activity

显式启动activity 直接在Intent中指定目标Activity.class,该activity必需在本应用中 Intent itet = new Intent(MainActivity.this,MyAty.class); startActivity(itet); 即使在acitvity中写了intent-filer但是忽略掉intent-filer中的内容

学习笔记 1915

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

显式和隐式启动Activity、Service

Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。 1.显式启动Activity: //显示方式声明Intent,直接启动Sec

what93的博客 4576

Android显式启动与隐式启动Activity

前段时间立志坚持写博客,但是发现自己的积累的确不多,于是假期泡了泡图书馆,读了一些很有价值的文章。收获颇多,今天的文章分享为主,共同学习。    为什么要写显式启动与隐式启动Activity。这源于自己的一次面试,被Baidu工程师问道,但是后来觉得自己回答的不好,废话少说,进入正题。      如题,Android的Acitivity启动大致有两种方式:显式启动与隐式启动。下面分别介绍:

Kevin的逆袭博客 4619

Intent显式和隐式启动Activity

今天做实验的时候发现了一点关于显式和隐式启动Activity的一点心得。 1.显示启动Activity比较简单,要求把具体的类写出来: Intent intent = new Intent(this,SecondActivity.class); startActivity(intent); 如果需要添加一些其他信息,则可以用Bundle,具体的用法如下: Bundle bundle = n

zhaoxiaoyao1987的专栏 1003

android 隐式启动,Activity 显式启动与隐式启动 应用

一、Activity 显式启动 (代码示例):public class MyActivity extends Activity {Button buttonStart;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.lay...

weixin_30420799的博客 1091

记录:移动设备软件开发(Activity的显式启动和隐式启动)

Android的应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用了一致的方式来启动它们——都是依靠Intent来启动的,Intent就封装了程序想要启动的程序的意图。隐式启动:系统根据Intent的动作和数据来决定启动那个Activity,指的是没有指定Component属性,没有明确指定要启动哪个组件,引用将会根据Intent指定的规则去启动符合条件的组件,但具体是哪个组件不确定。不足:被启动的应用的包名或者类名发生变化后,就会无法启动。

m0_72471315的博客 1654

android 隐式启动服务,Android显式启动与隐式启动Activity的区别介绍

前段时间立志坚持写博客,但是发现自己的积累的确不多,于是假期泡了泡图书馆,读了一些很有价值的文章。收获颇多,今天的文章分享为主,共同学习。为什么要写显式启动与隐式启动Activity。这源于自己的一次面试,被Baidu工程师问道,但是后来觉得自己回答的不好,废话少说,进入正题。如题,Android的Acitivity启动大致有两种方式:显式启动与隐式启动。下面分别介绍:A:显式启动对于初学者来说,...

weixin_34885009的博客 313

android 显式 隐式启动activity

简介android启动activity分为显式启动和隐式启动,显式启动时,指定被启动activity类。隐式启动,通过action、category进行匹配,如果匹配则启动。显式启动 Intent intent = new Intent(this,MyActivity.class); startActivity(intent);隐式启动 Intent intent = new I

wangjun5159的专栏 1756

显式启动Activity和隐式启动Activity

1.显式启动Intent intent = new Intent(this, class);startActivity(intent); 2.隐式启动AndroidManifest.xml中定义某个Activity的intent-fliter<intent-filter><action android:name="com.example.activity.ACTION_S...

weixin_34033624的博客 284

显/隐式intent启动Activity

Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);

lucky的专栏 296

Activity 显式启动与隐式启动 应用

一、Activity 显式启动 (代码示例): public class MyActivity extends Activity { Button buttonStart; @Override protected void onCreate(Bundle savedInstanceState) { ...

weixin_34015566的博客 226
上一篇: Android-Activity基本配置
下一篇: Android-Activity的启动模式
Android_xi
博客等级 码龄8年 4粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值