zoukankan      html  css  js  c++  java
  • 从0系统学Android-2.4隐式Intent

    本系列文章,参考《第一行代码》,作为个人笔记

    更多内容:更多精品文章分类

    使用隐式 Intent

    相对于显示 Intent ,隐式 Intent 比较含蓄。这种方式不明确指出我们想要启动哪一个 Activity。而是定义了一系列更为抽象的 actioncategory 等信息。然后交给系统去分析这个 Intent ,并帮我们找出这个合适Activity。

    合适的 Activity 就是指的可以响应这个隐式 Intent 的 Activity。

    通过在 <activity> 标签下配置 <intent-filter> 的内容,可以指定当前 Activity 能够响应的 action 和 category。在 AndroidManifest.xml 中添加:

    
     
     
     
     
    
    bt.setOnClickListener(new View.OnClickListener(){
     @Override
     public void onClick(View view){
     Toast.makeText(MainActivity.this,"显示内容",Toast.LENGTH_SHORT).show();
     Intent intent = new Intent("com.syd.start");
     startActivity(intent);
     }
     });

    每个 Intent 中只能指定一个 action,但是可以指定多个 category

    这个时候重新运行程序,点击按钮,就可以使用隐式 Intent 来启动 SecondActivity 了。

    这里使用了 Intent 的另外一个构造函数直接将 action 的字符传了过去,表明我们想要启动的 Activity 需要能够响应 com.syd.start 这个 Action。前面我们已经在 AndroidManifest.xml 中表明了 SecondActivity 可以响应这种 Action 了。

    MainActivity 中将显示启动该为隐式启动

    <action> 标签中我们指明了当前 Activity 可以响应 com.example.activitytest.ACTION_START 这个 action。<category> 标签包含了一些附加信息,更加精确的指明了当前 Activity 能够响应的 Intent 中还可能带有的category 只是可能带有,如果 Intent 中带有 category 则要启动的 Activity 的注册中必须有这个 category才可以。如果 Intent 中没有带有 category 也是可以的。不过 Activity 在声明的时候只要声明了 action 就要带一个 <category android:name = "android.intent.category.DEFAULT" 否则使用 action 启动的时候会报错,这是因为用 startActivity()方法的时候会自动将这个 category 添加到 Intent 中去。

  • 相关阅读:
    Find the Smallest K Elements in an Array
    Count of Smaller Number
    Number of Inversion Couple
    Delete False Elements
    Sort Array
    Tree Diameter
    Segment Tree Implementation
    Java Programming Mock Tests
    zz Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
    Algorithm about SubArrays & SubStrings
  • 原文地址:https://www.cnblogs.com/sydmobile/p/11241375.html
Copyright © 2011-2022 走看看