在Android开发中,当我们需要打开应用程序信息时,可以通过两种方式实现:一种是直接在应用程序的设置中打开,另一种是通过传递给它的Activity类来实现。
为什么选择在应用程序的设置中打开应用程序信息而不是传递给Activity类呢?原因如下:
总结起来,选择在应用程序的设置中打开应用程序信息而不是传递给Activity类,主要是为了提供统一的用户体验、保障安全性和提供便捷性。
在程序中,如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity,其本例代码具体如下: // 创建Intent对象 Intent intent = new Intent...-- 设置action属性,需要在代码中根据所设置的name打开指定的组件 --> 在上述代运中,标明了当前Activity可以响应的动作为“com.jinyu.cqkxzsxy.android.intent.action.xxx”,而标签则包含了一些类别信息...在上述两种Intent中,显式Intent开启组件时必须要指定组件的名称,一般只在本应用程序切换组件时使用。...而隐式Intent的功能要比显示Intent更加强大,不仅可以开启本应用的组件,还可以开启其他应用的组件,例如打开系统自带的照相机、浏览器等。
一个文本短信应用程序可能有一个活动,显示联系人的名单发送信息;第二个活动,写信息给选定的联系人;其他活动,重新查看旧信息或更改设置。...BroadcastReceiver类: 是接受sendBroadcast()发送的意图(intents)的基类。...注意:如果你在Activity.onResume() 注册一个接受者,你应该在Activity.onPause()注销它。因为当暂停时你不会收到意图,注销它将削减不必要的系统开销。...典型的是放在一个持久的图标在状态栏,用户可以打开获取信息。...这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式。内容提供者继承自ContentProvider 基类并实现了一个标准的方法集,使得其他应用程序可以检索和存储数据。
上篇教程:用Android最火的快速开发框架XUtils,进行文件下载 上几次主要讲解的是网络请求的相关知识。在接下来一段时间,将要讲解Activity多界面应用程序的开发。...那你可能会问,为什么我们以前写的项目,为什么Activity可以直接打开呢? 那是因为在默认创建Activity时,已经自动在Androidmanifest.xml中配置了。如图: ?...Activity中的配置 解读一下这个配置: ? Activity在Androidmanifest中的配置 Name:表示Activity类所在的包名+类名,我们把它叫做完全路径。...传递数据在Intent 在SecondActivity中获取数据: 添加textView显示data的值: ? Second的前台界面 获取MainActivity传递过来的值: ?...获取传递过来的data值 效果: ? 传输数据的效果 当然可以附带更多数据,直接在下面继续put就可以了,下面进行传递一个图片数据: ? 两者之间的大体传递形式 END. 我是成傲天。
通过它可以访问application的资源和相关的类! 面试官:什么是 Activity Context 呢?为什么要用? 应聘者:此上下文在 Activity 中可用。...3、面试官:为什么字节码不能在Android中运行? 应聘者:Android 使用的是 DVM ( Dalvik 虚拟机)而不是 JVM ( Java 虚拟机)。 面试官:不错,答上来了!...8、面试官:为什么要在 Activity 类的onCreate() 中执行setContentView() ?...应聘者:打开 AndroidStudio 就是生成在这里,具体为什么要在这里,我也不知道! 面试官:回答的真漂亮!...确实完成而不是更新新Activity的UI时,它更新了Activity的前一个实例(即创建它的实例,但不再显示!)。
跨进程通讯的几种方式 Android中为什么子线程不能更新UI 如果不做这个校验,是不是我也可以正常在子线程更新UI 但是google为什么要这样去设计呢 ViewRootImp是在onActivityCreated...方法后面创建的吗 为什么一定需要checkThread呢 那为什么不加锁呢 为什么一开始在Activity的onCreate方法中创建一个子线程访问UI,程序还是正常能跑起来呢 Android中子线程真的不能更新...在广播的传递过程中,先接收到广播的接收者可以对广播进行拦截或篡改。...则会抛出异常 如果不做这个校验,是不是我也可以正常在子线程更新UI // 如果不做这个校验,是不是我也可以正常在子线程更新UI?...所以干脆使用单线程模型处理UI操作,使用时用Handler切换即可 为什么一开始在Activity的onCreate方法中创建一个子线程访问UI,程序还是正常能跑起来呢 // 为什么一开始在Activity
如果是在别的应用程序中启动它,则会新建一个task,并在该task中启动这个Activity,singleTask允许别的Activity与其在一个task中共存,也就是说,如果我在这个singleTask...这些 Activity 按照各自的打开顺序排列在堆栈中。...,注意是代表而不是说它就是一个Thread类 它是创建完新进程之后(肯定是在一个线程中啊),main函数被加载,然后执行一个loop的循环使当前线程进入消息循环,并且作为主线程。...在 android 中,应用程序运行前,Zygote 进程通过共享已运行的虚拟机的代码与内存信息,缩短应用程序运行所耗费的时间。...并且,它会事先将应用程序要使用的 android Fromework 中的类和资源加载到内存中,并组织形成所用资源的链接信息。
显式Intent和隐式Intent: 显式的Intent就是你已经知道要启动的组件名称,比如某个Activity的包名和类名,在Intent中明确的指定了这个组件(Activity),一般来说这种Intent...下面是启动Activity经常用的action: ACTION_VIEW: 在调用startActivity()方法启动Activity时,用此action来呈现一些信息给用户,比如在相册中查看一张照片...ACTION_SEND: 也被称为"share"(共享)意图,在调用startActivity()方法启动Activity时,用此action来分享一些用户想要分享的数据给其他应用程序,比如邮件app或者社交...比如你用百度云盘下载了一个pdf文档,你在点击打开这个文档的时候百度云盘是无法打开的,但是也许你系统上安装有其他的能打开pdf文档的阅读器,这个时候就会弹出一个对话框,列举了可以打开pdf文档的应用程序...,你可以自由选择一个应用程序打开你下载的文档。
对象传递给它,后者Android 调用服务的onBind()方法将这个Intent 对象传递给它 • 发送广播可以通过传递一个Intent 对象至给Context.sendBroadcast() 、...而当用户按下BACK 键的时候,你的activity 又会再一次的显示在屏幕上,此时任务是由2个应用程序中的相关activity组成的)栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的...举个例子说,比如当前任务在栈中存有四个activity──三个在当前activity 之下。当用户按下HOME 键的时候,回到了应用程序加载器,然后选择了一个新的应用程序(也就是一个新任务)。...Android 应用程序的生命周期是由Android 框架进行管理,而不是由应用程序直接控制。...当系统而不是用户自己出于回收内存时,关闭了activity 之后。用户会期望当他再次回到这个activity 的时候,它仍保持着上次离开时的样子。
onStop(): Activity被停止并转为不可见阶段及后续的生命周期事件时调用。 onRestart(): Activity被重新启动时调用。该活动仍然在栈中,而不是启动新的Activity。...两个Activity之间怎么传递数据? 答: 可以在Intent对象中利用Extra来传递存储数据。...答: Intent在Android中被翻译为”意图”,他是三种应用程序基本组件-Activity,Service和broadcast receiver之间相互激活的手段。...而Intent Filter是指意图过滤,不出现在代码中,而是出现在android Manifest文件中,以的形式。...Activity跳转Activity,Activity启动Service,Service打开Activity都需要Intent表明意图,以及传递参数,Intent是这些组件间信号传递的承载着。
我的答案:× 11 Uri是指统一资源标示符。 我的答案:√ 12 WebView是一个系统浏览器 我的答案:× 13 WebView是用来实现在应用程序中打开系统浏览器的控件。...我的答案:√ 14 WebView可以在应用程序中嵌入一个浏览器,实现展示网页。...我的答案:× 18 Android内置了很多系统级别的广播,我们可以在应用程序中通过监听这些广播来得到各种系统的状态信息。...我的答案:× 21 Service不是一个单独的进程,它和它的应用程序在同一个进程中。 我的答案:√ 22 Service不是一个线程,这样就意味着可以在Service中进行耗时操作。...我的答案:× 38 在目标Activity中,通常使用setResult()方法设置返回数据。 我的答案:√ 39 使用intent启动其他组件时,有两种方式,一种是显式启动,一种是隐式启动。
的label标签的值就它的界面的标题 4、activity的label标签的值就它的桌面快捷图标的名称 5、application中的label标签和activity中的label标签不是一个概念,application...(); 4、重写onActivityResult方法接收返回的数据: 代码: /** * requestCode 开启activity时设置的请求吗 * resultCode 在目标activity中设置的结果码...代码: /** * requestCode 开启activity时设置的请求吗 * resultCode 在目标activity中设置的结果码 * data 第二个界面返回的数据 */ @Override...任务: 打开一个activity界面; 任务栈: 设计任务栈的目的:用来维护用户的体验,记录打开界面和关闭界面的信息。...1、打开一个activity界面表示在栈中存放了一个任务,关闭一个界面表示清除了一个任务; 2、栈里面的任务清除完毕后,应用程序退出; singletop启动模式 singletop 单一顶部模式 在activity
它是一种消息传递机制,可以用于启动组件、传递数据以及触发特定的行为。 Intent由两个主要部分组成:Action和Data。Action指示Intent要执行的操作,而Data定义与操作相关的数据。...隐式启动:除了显式地指定目标组件的类名,还可以使用隐式意图根据指定的Action、Data和Category来自动选择最合适的组件。...intent.addCategory(Intent.CATEGORY_LAUNCHER); 4.Extra(附加数据):用于在Intent中传递额外的数据,可以使用putExtra()方法添加数据。...intent.putExtra("key", value); 5.Flags(标志):用于改变Intent的行为和启动模式,如FLAG_ACTIVITY_NEW_TASK表示在新的任务中启动活动。...打开网页链接: // 创建Intent对象,设置Action为打开网页的动作 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https
而Android上的微信小程序做得格外的像一个真正的应用程序。为什么这么说呢?因为Android上的每个微信小程序甚至还能拥有自己的任务视图,就像是一个真正的独立应用程序一样。...而默认情况下,每个Activity的taskAffinity属性值都是当前应用程序的包名,也就是说它们的值都是相同的,所以才不能得到我们想要的效果。...明明都是同一个App中的3个Activity,现在我们竟然可以让它们在3个独立的任务视图中显示,是不是感觉就好像是微信小程序一样?...剩下的部分,当然也是最难的部分,就是在这个壳子里面添加小程序的内容了。这部分的技术以前端为主,并不是我擅长的领域,我也讲不了,因此就不再继续向下延伸了。...这个时候回到微信当中,再打开一个顺丰速运小程序。 再次回到任务视图列表界面,你会发现现在多了一个顺丰速运的小程序,而最早打开的哔哩哔哩小程序却从任务视图列表中消失不见了。
原文地址:https://developer.android.com/training/notify-user/build-notification.html 创建一个通知 通知提供了有关应用程序未使用时的事件的简短而及时的信息...上面所示的 setFlags() 方法有助于在通过通知打开应用程序后保留用户的预期导航体验。...用户在正常情况下不会打开这个 Activity,所以该 Activity 启动一个新的任务栈而没有必要添加到程序的返回栈中。这就是上面所示的内容意图类型 应用程序中的常规 Activity ....但是,如果您正在构建消息传递应用程序,则应该创建消息传递式通知并将新消息追加到对话中。 添加一个进度条 通知能包含一个动画进度指示器,向用户展示正在进行的操作状态。...可以选择性调用 setOnlyAlertOnce() 让通知只在第一次显示时才会中断用户(包括声音,震动,视觉),而不是以后的更新都中断用户。 注意:Android系统在更新通知时应用了比例限制。
3、singleTask:如果任务栈中存在该activity实例,则直接使用该实例,将它置于栈顶,而它之上的其他activity纷纷出栈。如果不存在,则创建新的实例。...一般会将具有程序入口等启动页面的activity指定为singleTask,这样可以避免在启动页退出的时候因存在多个实例而需要反复点击才能退出应用的问题。...BroadcastReceiver是全局广播,可以被其他应用程序所接收。可以在manifest文件中静态注册。...LocalBroadcastReceiver 只能够在应用程序的内部进行传递,解决了广播安全性的问题,本地广播只能通过动态方式注册。 4.对于 Context,你了解多少?...答:Context,简称上下文,指程序运行的上下文环境。Context是一个抽象类,它允许访问特定于应用程序的资源和类,以及对应用程序级操作的调用,比如启动活动,发送广播和接收意图等。
Intent漏洞 1.Intent 类型 显示Intent 显式Intent通过提供目标应用的包名称或完全限定的组件类名来指定哪个应用程序将满足意向。 即需要明确组件类名。...如 例如,如果你在应用中构建一个名为DownloadService的服务,用于从Web下载文件,可以使用以下代码启动: // Executed in an Activity, so 'this' is...通常有两种攻击操作: 通常导致读入任意文件 自定义操作,取决于应用程序实现产生的不同漏洞 自定义操作 受害者应用代码:功能需要接受返回数据并在webview中打开,接收返回码为1 startActivityForResult...就其本身而言,启动隐藏组件不会产生太大的安全影响,并且需要滥用隐藏组件的功能: 旁路保护 开发人员可以实现对收到的意图的过滤和显式设置组件以处理意图 为null: intent.setComponent...(而不是 Intent 的主要内容)时,将使用选择器。
: 设置允许操作系统备份数据,对应的manifest里面的android:allowBackup,设置true则允许备份 FLAG_KILL_AFTER_RESTORE: 这块我也是不很清楚,设置在未来的某个事件点并且版本...public String manageSpaceActivityName:用于指定一个Activity来管理数据,它最终会出现在"设置->应用程序管理"中,默认按钮为"清楚数据",可以在AndroidManifest...该属性有4个值,用户在应用中打开的一个document会有不同的效果如下: public static final int DOCUMENT_LAUNCH_NONE = 0: Activity不会为...十、PermissionInfo类简介 PermissionInfo.java PermissionInfo,它代表一个应用的权限描述,它既是权限信息的记录,也是权限的级别保护,在Android系统中...,做任何操作都要申请权限,但是如果你的级别不够,有些权限不是你在代码中写了申请就能获取的。
Android应用程序(APP)是也是由若干个组件构成,组件与组件之间的通信是通过框架层提供的服务集中调度和传递消息实现的,而不是应用程序组件之间直接进行的。...这样做在很多时候是相当方便的。 当打开一个新的Activity时,前一个Activity会被置为暂停(pause)状态,并且压入历史栈中。...用户可以通过返回操作退回到以前打开过的Activity。...3、广播接收器(Broadcast Receivers) 在 Android APP中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。...异步(Asynchronous)是指讯息的送出和接收是相互独立的。意图可以告诉Android作业系统我想干什么?
通过设置主题样式在 styles.xml 中编辑代码 , 添加 themes.xml 文件:在 AndroidManifest.xml 中给指定的 Activity 指定 theme。...如果是在别的应用程序中启动它,则会新建一个 task ,并在该task中启动这个 Activity ,singleTask 允许别的 Activity 与其在一个 task 中共存,也就是说,如果我在这个...除非该 activity 不是被用户主动销毁的,通常 onSaveInstanceState() 只适合用于保存一些临时性的状态,而 onPause() 适合用于数据的持久化保存。...通过它我们可以获取应用程序的资源和类, 也包括一些应用级别操作, 例如:启动一个 Activity ,发送广播,接受 Intent ,信息,等。...在 Android 中,如果你的应用程序有一段时间没有响应,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框。
例如,这可以在电子邮件应用程序中使用,以允许用户选择一些数据作为附件。 在Intent类中定义了各种标准的Intent动作和类别常理,但是应用程序也可以定义它们自的。...与动作一样,如果某个类型包含在意图中(在某数据中显式或隐式地包含),则该组将必须按组件列出。 对于不是content: URI的数据, Intent中不包含显式类型,而是考虑意图数据(如or)的方案。...:标准的MAIN动作是一个主要的入口点(在Intent中不需要任何其他信息),并且LAUNCHET类别表示这个入口点应该被列在应用程序启动器中。...这可以被实现为应用程序直接调用的类(通过在Intent中明确地设置其组件),但是在这里我们展示了一种方法,可以在现有数据上发布替代操作: 在intent中用作一个int外部字段来告诉被调用的应用程序有多少未决的警报正在被意图传递。
领取专属 10元无门槛券
手把手带您无忧上云