做外贸一般总浏览的网站,网站建设周记300字,app手机软件,镇江市住房城乡建设局网站Intent在安卓中#xff0c;Activity启动时通常需要Intent参数。Intent参数中包含以下几个常用的属性#xff1a;Component#xff0c;指定了要启动的Activity#xff0c;以及启动的context#xff0c;使用Intent.setClass或Intent.setComponent方法可以设置#xff1b;Ac… Intent 在安卓中Activity启动时通常需要Intent参数。Intent参数中包含以下几个常用的属性 Component指定了要启动的Activity以及启动的context使用Intent.setClass或Intent.setComponent方法可以设置 Action属性可用Intent.setAction方法设置 Category属性可用Intent.addCategory方法添加Action和Category属性一般用于做过滤 Extra属性用于传入一些参数可通过Intent.putExtra方法添加。在Activity被启动后可以通过getIntent.getExtra获取Extra参数。 Manifest 安卓Activity有一个intent-filter属性用于过滤启动启动此Activity所使用的Intent不满足条件的Intent无法启动这个Activity也就是Intent的Action和Category属性了。 最常见的用法就是主启动Activity一般这么写 activity android:name.MainActivity android:labelstring/title_activity_main intent-filter action android:nameandroid.intent.action.MAIN / category android:nameandroid.intent.category.LAUNCHER / /intent-filter /activity 给Activity设置intent-filter.action属性则该Activity可以作为应用程序入口被其他程序调用比如Launcher启动器。可以有多个action只要Intent具有其中的一个action就可以启动Activity。如 action android:namevoice / action android:nameandroid.intent.action.MAIN / 在Activity的intent-filter.category属性中添加LAUNCHER值则此Activity可以出现在Launcher中也就是手机应用程序主菜单中。 category android:nameandroid.intent.category.LAUNCHER / 如果设置了action但没有对category属性添加LAUNCHER会出现下述警告表明Activity暴漏在外面可被外部的非Launcher程序调用可能会有安全性问题。 Exported activity does not require permission 此时设置android:exportedfalse则警告会消失。这是这个Activity只能在本应用内部被调用。因此指向具有这一属性的Activity的快捷方式被点击时Launcher无法调用Activity于是会显示应用程序不存在。 android:exportedfalse 同一个App可以有多个Activity具有action.MAIN属性Launcher会自动选择一个作为程序入口。 !-- 欢迎界面 -- activity android:name.ui.ActivityWelcome android:themeandroid:style/Theme.Light.NoTitleBar.Fullscreen intent-filter action android:nameandroid.intent.action.MAIN / category android:nameandroid.intent.category.LAUNCHER / /intent-filter /activity !-- 主界面 -- activity android:name.ui.ActivityMain intent-filter action android:nameMAIN / category android:nameandroid.intent.category.LAUNCHER / /intent-filter /activity 代码添加快捷方式的方法 /** * 创建快捷方式 * p * 需要权限 * p * uses-permission * android:namecom.android.launcher.permission.INSTALL_SHORTCUT / * p * * param context * Context * param intent * 要启动的Intent * param name * 快捷方式名 * param icon * 快捷方式图标 */ public static final void addShortcut(Context context, Intent intent, String name, int icon) { ShortcutIconResource iconRes Intent.ShortcutIconResource.fromContext( context, icon); Intent sc new Intent(com.android.launcher.action.INSTALL_SHORTCUT); sc.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); // 快捷方式名 sc.putExtra(duplicate, false); // 不允许重复创建 sc.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); // 快捷方式图标 sc.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); // 启动Intent context.sendBroadcast(sc); } public static final void addShortcut(Context context, Intent intent, int name, int icon) { addShortcut(context, intent, context.getString(name), icon); } 通过给Intent设置不同的Component、Action等即可从Launcher启动相应Activity并可传入Extra参数这样可以实现一些诸如一键截屏快捷启动之类的功能。 Intent intent new Intent(Intent.ACTION_MAIN); intent.setClass(this, ActivityWelcome.class); addShortcut(this, intent, R.string.app_name, R.drawable.ic_launcher); Intent intent1 new Intent(MAIN); intent1.setClass(this, this.getClass()); addShortcut(this, intent1, R.string.app_name, R.drawable.ic_launcher); 本文由PurpleSword(jzj1993)原创转载请注明 原文网址 http://blog.csdn.net/jzj1993