首先需要在AndroidManifest.xml  修改

<activity android:name="com.test.apptest.AppActivity"

          android:label="@string/app_name"

          android:launchMode="singleTask”>//Activity的Launch mode详解


    <intent-filter>

        <actionandroid:name="android.intent.action.MAIN"/>

        <actionandroid:name="android.intent.action.VIEW"/>

        <categoryandroid:name="android.intent.category.LAUNCHER"/>

    intent-filter>


    <intent-filter>

        <action android:name="android.intent.action.VIEW" />

        <data android:scheme="apptest"/>

        <category android:name="android.intent.category.DEFAULT"/>

        <category android:name="android.intent.category.BROWSABLE"/>

    intent-filter>


activity>



singleTasksingleInstance方式

如果Activity 已经启动过了会重新唤醒  (从app 跳转到网页或其它app 在跳转回来)

protected void onNewIntent(Intent intent) {

   super.onNewIntent(intent);

   setIntent(intent);

   //here we can use getIntent() to get the extra data.

}

@Override
protected voidonResume() {
    super.onResume();
    onNewIntent(this.getIntent());
   Intent intent = getIntent();
    String scheme = intent.getScheme();
    Uri uri = intent.getData();
    System.out.println("scheme:"+scheme);
    if(uri != null) {
    String host = uri.getHost();
    String dataString = intent.getDataString();
    String id = uri.getQueryParameter("d");
    String path = uri.getPath();
    String path1 = uri.getEncodedPath();
    String queryString = uri.getQuery();
    System.out.println("host:"+host);
    System.out.println("dataString:"+dataString);
    System.out.println("id:"+id);
    System.out.println("path:"+path);
    System.out.println("path1:"+path1);
    System.out.println("queryString:"+queryString);
    }

}


如果Activity 没有启动过 则重新创建    (从网页或其它app  打开app)

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    String scheme = intent.getScheme();
    Uri uri = intent.getData();
    System.out.println("scheme:"+scheme);
    if(uri != null) {
    String host = uri.getHost();
    String dataString = intent.getDataString();
    String id = uri.getQueryParameter("d");
    String path = uri.getPath();
    String path1 = uri.getEncodedPath();
    String queryString = uri.getQuery();
    System.out.println("host:"+host);
    System.out.println("dataString:"+dataString);
    System.out.println("id:"+id);
    System.out.println("path:"+path);
    System.out.println("path1:"+path1);
    System.out.println("queryString:"+queryString);
    }

}



   
   
   
   
   
   

    



更多相关文章

  1. android : 深入理解intent-filter的action,category和data
  2. WebView的基本使用方法及 WebViewClient加载网页使用
  3. android adb shell命令行启动Activity service broadcast
  4. Android(安卓)SystemServer 启动流程
  5. Android(安卓)之 AlarmManager(定时器) 的介绍和使用
  6. Android(安卓)Activity 四种启动模式
  7. 终结篇:Android(安卓)startActivity原理分析(基于Android(安卓)8.
  8. Android(安卓)Service 之StartService()
  9. Android实现开机自动启动Service或app的方法

随机推荐

  1. 函数类型和数据类型
  2. 函数类型和数据类型
  3. JS数据类型与函数
  4. rem+vw 布局的原理与 rem 的设置技巧
  5. css样式来源、基本选择器、上下文选择器
  6. rem+vw 布局手机端与 grid 布局详解
  7. 移动端页面布局技巧、Grid布局基础知识
  8. 流程控制,模板函数
  9. 流程控制,循环,模板字面量,模板函数演示
  10. 伪类选择器、字体图标、盒模型