zoukankan      html  css  js  c++  java
  • Android启动组件的三种主流及若干非主流方式


                                                          本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处


    启动组件的一些方式,今天做一个简要的总结

    Service:通过startService()启动,或者写进AndroidManifest.xml实现自启动

    BroadCastReceiver:通过register方法注册,或者注册在AndroidManifest.xml中

    剩下使用比较频繁的就是Activity

    三种主流方式


    1、设置class

    Intent intent = new Intent();
    intent.setClass(MainActivity1.this, MainActivity2.class);
    //intent.setClassName("com.lzx.definepermission","com.lzx.definepermission.MainActivity");
    //intent.setComponent(new ComponentName("com.lzx.definepermission", "com.lzx.definepermission.MainActivity"));
    startActivity(intent);

    第一种又有三种方法,直接setClass,后两种同样适用不同于进程间的互调。

    2、启动某个应用

    Intent intent = new Intent();
    PackageManager manager = MainActivity.this.getPackageManager();
    intent = manager.getLaunchIntentForPackage("com.lzx.definepermission");
    startActivity(intent);

    3、隐式调用

    被调用者在AndroidManifest.xml文件的intent-filter加入action,

    如:<action android:name="android.intent.action.definepermission" />

    调用者:

    Intent intent = new Intent();
    intent.setAction("android.intent.action.definepermission");
    startActivity(intent);

    不适用:

    (1)被调用者加入了自定义权限(详见:Android自定义权限和使用权限

    (2)被调用者使用隐私属性,只让本项目中类访问

    其它使用Intent属性打开所需Activity:Intent中的四个重要属性——Action、Data、Category、Extras

    小知识:

    android:process=":remote",无论Activity或者Service都可添加次属性

    “:remote”代表此Activity需要时即被创建,"remote"代表它成为全局变量,所有的进程中公用此组件


  • 相关阅读:
    asp.net应用程序的生命周期和iis
    跨网页公布技术
    Java面试题:异常、静态变量
    js省市级联
    python基础之介绍
    Java学习(二)有关Tomcat的进一步理解与运用
    Java学习(一)环境的配置和软件的使用
    构造方法
    自言自语
    小小叹
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147382.html
Copyright © 2011-2022 走看看