在Android中Intent的概念及应用(二)——Intent过滤器相关选项

一、如果多个Activity拥有同一个Intent Action,启动时用同一个Action启动会是什么情况?

  如何指定某一个Activity启动?

    在多个Activity拥有同一个Intent Action的情况下,如若想启动某一指定Activity,则在该<intent-filter>

  中添加<data android:scheme="app"/>。而且,将启动的代码写为:

    startActivity(new Intent("com.w.learnIntent.intent.action.MyAty", Uri.parse("app://myaty1")));

二、如何通过浏览器链接启动本地Activity?

1、在新建的项目LaunchLocalApp中新建一个Activity,并在AndroidManifest.xml文件中进行配置:

  <activity android:name=".LocalAppAty">
    <intent-filter>
      <category android:name="android.intent.category.BROWSABLE"/>  <!--可浏览的-->
      <category android:name="android.intent.category.DEFAULT"/>
      <action android:name="android.intent.action.VIEW"/>
      <data android:scheme="app"/>  <!--协议的名字-->
    </intent-filter>
  </activity>

    将其安装到模拟器上。

2、编写index.html页面(WebStorm)并执行:

    <a href="app://LocalApp">Launch My App</a>  <!--LocalApp是任意参数-->

3、通过模拟器内的浏览器访问10.0.2.2:63343/WebStormProjects/index.html,点击链接即可访问该Activity

 (localhost通过模拟器来访问,其地址是10.0.2.2)。

(附加:

  使用WebStorm时,弹出requested without authorization,you can copy URL and open it in browser to trust it的问题。

  解决方案:

    File—>Settings—>Build,Execution,Deployment—>Debugger中,勾选上Allow unsigned requests的选项,应用即可。)

三、如何能接收到传过来的参数?

  LocalAppAty.java:

    Uri uri = getIntent().getData();
    System.out.println(uri);

  运行程序则控制台输出:

    I/System.out: app://LocalApp

				
时间: 2024-10-22 18:38:17

在Android中Intent的概念及应用(二)——Intent过滤器相关选项的相关文章

Android中关于JNI 的学习(二)对于JNI方法名,数据类型和方法签名的一些认识

处理特征数据 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26240241 输入文件:  1. 归一化后的特征文件, 第1列是标签, 其余列是特征; 2. 特征最大值向量文件: 前3列是标准格式, 其余列是最大值; 输出文件: 1. 符合SVM训练数据的特征格式; 2. Mat存储的标准XML文件; 代码: /* 处理特征数据程序 By C.L.Wang 数据格式: 特征数据: 第1列是标签, 其余列是特征; 最大

android中的显式与隐式Intent

Intent是Android初学者比较难理解的一个东西.我这里以通俗易懂的语言和通俗易懂的代码,让初学者简单感受一下Intent. intent就是意图的意思.Intent分两种:显式(Explicit intent)和隐式(Implicit intent). 一.显式(设置Component) 显式,即直接指定需要打开的activity对应的类.以下多种方式都是一样的,实际上都是设置Component直接指定Activity类的显式Intent,由MainActivity跳转到SecondAc

Android笔记——Android中数据的存储方式(二)

我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效率.如果学过JavaWeb的朋友,首先可能想到的是数据库.当然了数据库是一个方案,那么是否还有其他的解决方案呢?今天我们在讲下Android笔记——Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件.SQL

Android中的软件安全和逆向分析[二]—apk反破解技术与安全保护机制

在Android应用开发中,当我们开发完软件之后,我们不希望别人能够反编译破解我们的应用程序,不能修改我们的代码逻辑.实际上,在应用程序的安全机制考虑中,我们希望自己的应用程序安全性高,通过各种加密操作等来增大竞争对手的反编译破解成本.设想,竞争对手开发一个同样的应用程序需要10天,而破解我们的软件程序需要100天,那么势必会打消黑客程序员破解我们应用程序的念头.如何增加对手的破解成本,就需要考验我们应用程序的安全性有多高,加密技术有多强.一个优秀的应用程序,不仅能为用户带来利益,同时也能保护自

Android中关于回调概念的笔记

一.回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 详细解释: 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C不会自己调用B,C提

关于android中EditText自动获取焦点并弹出键盘的相关设置

在android开发中,关于EditText自动获取焦点弹出键盘,我们可能又是会有让键盘自动弹出的需求,有时可能又会有不想让键盘自动弹出的需求,下面是我所总结的两种方法: 需求:EditText自动获取焦点并弹出键盘,代码: EditText.setFocusable(true); EditText.setFocusableInTouchMode(true); EditText.requestFocus(); 需求:EditText不会自动获取焦点并且不会弹出键盘,代码:  将其父控件设置: P

Android中Context的理解及使用(二)——Application的用途

实现数据共享功能: 多个Activity里面,可以使用Application来实现数据的共享,因为对于同一个应用程序来说,Application是唯一的. 1.实现全局共享的数据App.java继承自Application: public class App extends Application { private String textData = "default"; public void setTextData(String textData) { this.textData

Android中FragmentPagerAdapter对Fragment的缓存(二)

上一篇我们谈到了,当应用程序恢复时,由于FragmentPagerAdapter对Fragment进行了缓存的读取,导致其并未使用在Activity中新创建的Fragment实例.今天我们来看如何解决这种情况.  根据上篇Blog的描述,我们不难发现,目前需要解决的问题有以下两个:  1. 缓存Fragment内部成员变量缺失的问题.  2. 新Fragment的创建和缓存Fragment使用之间的矛盾.  下面先来解决第一个问题,缓存Fragment内部成员变量缺失.上篇Blog中,Fragm

Android中高效的显示图片之二——在非UI线程中处理图片

在“加载大图”文章中提到的BitmapFactory.decode*方法,如果源数据是在磁盘.网络或其它任何不是在内存中的位置,那么它都不应该在UI线程中执行.因为它的加载时间不可预测且依赖于一系列因素(磁盘读写速度.图片大小.CPU频率等).如果在主线程中执行这个操作,一旦它阻塞了主线程,就会导致系统ANR.本节介绍使用AsyncTask在后台处理图片和演示怎么处理并发问题. 一.使用一个AsyncTask AsyncTask类提供一个简易的方法在后台线程中执行一些任务并把结果发布到UI线程.