android82 启动Actvity和Activity的生命周期

简介:

package com.itheima.jump;

import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 跳转至打电话activity * 跳转至其他应用的activity * 隐式跳转:通过指定action和data * @param v */ public void click1(View v){ Intent intent = new Intent(); //隐式意图 intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:110")); tel是安卓默认的打电话Activity的前缀 //跳转 startActivity(intent); } /** * 跳转至secondActivity * 在本应用中跳转 * @param v */ public void click2(View v){ Intent intent = new Intent(); //cls:直接指定目标Activity的类名 //显示意图 intent.setClass(this, SecondActivity.class);//字节码 startActivity(intent); } /** * 显示跳转至拨号器 */ public void click3(View v){ Intent intent = new Intent(); //指定目标Activity的包名和类名,如果Activity所在的包跟应用包名(com.android.dialer)同名,那么可以省略不写 intent.setClassName("com.android.dialer", ".DialtactsActivity"); startActivity(intent); } /** * 隐式跳转至拨号器 */ public void click4(View v){ Intent intent = new Intent(); //隐式设置拨号器的动作 intent.setAction(Intent.ACTION_DIAL); startActivity(intent); } /** * 隐式跳转至secondActivity * @param v */ public void click5(View v){ Intent intent = new Intent(); intent.setAction("com.itheima.sa2"); //匹配<action android:name="com.itheima.sa2"/> /* intent.setData(Uri.parse("heima2:qwe")); 匹配android:scheme="heima2" intent.setType("text/username"); 匹配android:mimeType="text/username" */ intent.setDataAndType(Uri.parse("heima2:qwe123"), "text/username"); //系统会自动添加默认的category intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent); } /** * 显式跳转至浏览器 */ public void click6(View v){ Intent intent = new Intent(); //com.android.browser是包名这里是安卓自带的浏览器,com.android.browser.BrowserActivity是类名 intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); startActivity(intent); } /** * 隐式跳转至浏览器,这里是隐士的启动,可以启动别的浏览器程序(例如360浏览器不是安卓默认的浏览器是跨应用调用Activity),那么这里会让你选择启动哪个浏览器。 * @param v */ public void click7(View v){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW);//没有指明调用哪个浏览器 intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } }
复制代码

 清单文件:

复制代码
<activity android:name=".SecondActivity">
            <intent-filter >
                <action android:name="com.itheima.sa"/>
                <action android:name="com.itheima.sa3"/>
                <data android:scheme="heima"/>   java类里面前面也要指明data,并且前缀是heima
                <data android:scheme="heima3"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            
            <intent-filter >
                <action android:name="com.itheima.sa2"/>
                <data android:scheme="heima2" android:mimeType="text/username"/>  mimeType是数据的类型
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
复制代码

 

###显式意图和隐式意图的应用场景
* 显式意图用于启动同一应用中的Activity
* 隐式意图用于启动不同应用中的Activity
* 如果系统中存在多个Activity的intent-filter同时与你的intent匹配,那么系统会显示一个对话框,列出所有匹配的Activity,由用户选择启动哪一个



本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4943636.html,如需转载请自行联系原作者


相关文章
|
XML Java Android开发
利用Bundle实现Android Activity间消息的传递
利用Bundle实现Android Activity间消息的传递
156 2
|
Android开发
Android面试题之Activity的启动模式和flag
Android Activity的四种启动模式:standard(默认,每次启动创建新实例),singleTop(栈顶复用,不走onCreate,调用onNewIntent),singleTask(栈内唯一,清除上方Activity)和singleInstance(单独栈内唯一)。启动模式在AndroidManifest.xml中配置,Intent Flags如FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP可实现类似功能。了解这些对于处理Activity栈管理至关重要。
254 0
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
261 6
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
258 3
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
244 3
|
XML Android开发 数据格式
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
本文通过案例分析了在Android中当两个Activity都设置了`android.intent.category.LAUNCHER`类别时,会导致它们同时在应用启动器的"所有应用"页面显示为不同的启动入口。
429 2
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
315 4
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
155 0
|
XML Android开发 数据格式
Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来
在 Android 中实现 Activity 的对话框式过渡动画:从底部滑入与从顶部滑出。需定义两个 XML 动画文件 `activity_slide_in.xml` 和 `activity_slide_out.xml`,分别控制 Activity 的进入与退出动画。使用 `overridePendingTransition` 方法在启动 (`startActivity`) 或结束 (`finish`) Activity 时应用这些动画。为了使前 Activity 保持静止,可定义 `no_animation.xml` 并在启动新 Activity 时仅设置新 Activity 的进入动画。
689 12
|
开发工具 Android开发
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
633 1

热门文章

最新文章