intent

Android四大应用组件之Activity

那年仲夏 提交于 2019-12-16 22:04:37
一、Activity定义   1、Activity, 直译为活动, 它是Android定义的四大应用组件之一,也是最重要用得最多的.   2、Activity用来提供一个能让用户操作并与只交互的界面   3、一个应用界面可以包含多个Activity 二、生命周期以及方法   1、在Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的 生命周期 ,,由系统控制生命周期,程序无法改变,但可以用 onSaveInstanceState 保存其状态       2、Activity中的方法以及使用方法:       1)方法:         1、startActivity(Intent intent): 一般启动         2、startActivityForResult(int reqCode, Intent intent): 带回调启动         3、onActivityResult(int reqCode, int resultCode, Intent data): 回调方法         4、setResult(int resultCode, Intent data): 设置要返回的结果         5、finish(): 结束当前         6、Activity getIntent()

Intent(一.显示使用intent)

戏子无情 提交于 2019-12-16 20:16:24
大家都知道如果手机只有一个活动的应用,那这个应用也太简单了吧。如同网页一下,是有多个组成的,在C#中我们可以使用各程skip控件或代码,这里不再赘述。那么我们还是在当前的项目中创建一个名为SecondActivity活动(Activity),并添加一个BTN按钮,代码如下: package cn.hengzhe.tishi; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class SecondActivity extends MainActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_layout); } } Activity <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com

安卓开发之短信发送器的开发

只愿长相守 提交于 2019-12-16 14:47:32
package com.lidaochen.test; import android.content.Intent; import android.os.Bundle; import android.provider.Telephony; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.telephony.SmsManager; import android.view.View; import android.widget.EditText; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private EditText et_number; private EditText et_content; // 当我们开启的Activity页面关闭的时候,就调用下面这个方法 @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { /* if (requestCode

扒扒Task与Activity启动模式

走远了吗. 提交于 2019-12-15 08:42:25
最近在重新整理Activity的启动模式,顺便也扒了扒任务栈Task,接着又去了解了下Android的概览屏幕,把页面间的跳转、任务栈存放与管理及从任务列表窗口恢复,整体串通的了解了一下。下面有几个基本的问题,你不妨测试一下,看看能掌握多少? 发自灵魂的拷问 设置启动模式为singleTask,若栈内已有该实例,是否栈内就一定是复用的,不会创建实例? 若Intent设置FLAG_ACTIVITY_NEW_TASK,任何启动模式,如果采取startActivityForResult()启动Activity,onActivityResult()有何变化? LauncherActivity->A(standard)->B(singleInstance)按下home键,点击桌面app图标,会发生什么? LauncherActivity->A(standard)->B(standard)->C(singleInstance)->A,按下返回键,会发生什么? 当调用startActivityForResult启动Activity,那么启动模式会发生什么变化? 下面我就带着大家一块测试和分析一下,本篇博客测试设备Pixel(API19)、小米(API21)和OPPO(API27),主要是把android系统5.0作为一个分水岭来测试,因为官方的文档很多地方未交代清楚,需要考证。 ##

Android 学习笔记核心篇

隐身守侯 提交于 2019-12-14 05:03:33
原文:https://juejin.im/post/5c46db4ae51d4503834d8227 Android 学习笔记核心篇 基础知识 底层原理 Android 操作系统是一个多用户 Linux 操作系统,每个应用都是一个用户 操作系统一般会给每个应用分配一个唯一的 Linux 用户 ID,这个 ID 对应用是不可见的。但有些情况下两个应用可以共享同一个 Linux 用户 ID,此时他们可以访问彼此的文件,甚至还可以运行在同一个 Linux 进程中,共享同一个虚拟机。但两个应用的签名必须是一样的 每个进程都有自己的虚拟机,一般每个应用都运行在自己的 Linux 进程中 应用组件 应用没有唯一的入口,没有 main() 函数,因为应用是由多个组件拼凑在一起的,每个组件都是系统或者用户进入应用的入口,组件之间既可以是相互独立的,也可以是相互依赖的。系统和其它应用在被允许的情况下可以启动/激活一个应用的任意一个组件 组件有四种类型: Activity,Service,BroadcastReceiver 和 ContentProvider Activity Activity 表示一个新的用户界面,只能由系统进行创建和销毁,应用只能监听到一些生命周期回调,这些回调通常也被叫作生命周期方法 Activity 的名字一旦确定好就不要再更改了,否则可能会引发一系列问题 Service

Android获取本地图片之ACTION_GET_CONTENT与ACTION_PICK区别

橙三吉。 提交于 2019-12-13 16:30:51
我们都知道下面两种方法都可以打开Android本地图库: Intent.ACTION_GET_CONTENT Intent intent = new Intent(Intent .ACTION _GET_CONTENT) ; intent .setType ( "image/*" ) ; startActivityForResult(intent, REQUEST_CODE_DOCUMENT) ; 1 2 3 Intent.ACTION_PICK Intent intent = new Intent(Intent .ACTION _PICK, android .provider .MediaStore .Images .Media .EXTERNAL _CONTENT_URI) ; intent .setType ( "image/*" ) ; startActivityForResult(intent, REQUEST_CODE_ALBUM) ; 1 2 3 4 但是他们之间的区别是什么呢? Intent.ACTION_GET_CONTENT 获取的是所有本地图片, Intent.ACTION_PICK 获取的是相册中的图片。 Intent.ACTION_PICK 返回的uri格式只有一种:比如 uri=content://media/external/images/media

Intent的用法(2)

社会主义新天地 提交于 2019-12-13 14:56:26
Intent简介 Intent可以用来启动 Activity(startActivity(Intent)) 、 Serveice(startService(Intent)) 等组件, 可以用来绑定Activity和Service以建立它们之间的通信 ( bindServiceConnaction(Intent,ServiceConnection,int) ) 可以作为Broadcast Intent发送给广播接收器 ( sendBroadcast(Intent) ) Intent的属性: 主要属性 Action 执行的动作类型。在定义自定义action时,需要包含app的包名,例如: static final String ACTION_TIMEREVEL = "com.exmple.action.TIMERAVEL" 1 Activity Actions 动作名称 作用 ACTION_MAIN 表示程序入口 ACTION_VIEW 自动以最合适的方式显示Data ACTION_EDIT 提供可以编辑的 ACTION_PICK 选择一个一条Data,并且返回它 ACTION_DAIL 显示Data指向的号码在拨号界面Dailer上 ACTION_CALL 拨打Data指向的号码 ACTION_SEND 发送Data到指定的地方 ACTION_SENDTO

Intent的用法(1)

戏子无情 提交于 2019-12-13 12:55:07
什么是Intent?Intent在Android中的核心作用就是“跳转”(Android中的跳转机制),同时可以携带必要的信息,将Intent作为一个信息桥梁。最熟悉的莫过于从一个活动跳转到另一个活动,然后返回到上一个活动。不过Intent的“跳转”作用不仅于此,Intent还可以在其他地方使用,比如在碎片中跳转,接受到一个广播后自动跳转,但是这个时候没有活动(上下文)作为第一个参数该怎么办?问题早已解决。使用隐式跳转即可,他只需要一个参数,下面会提到隐式跳转,这就是有了显式跳转之后,隐式跳转还能存在的一个理由吧。 接才来进入正题,学习使用Intent类和相关的API: 1)显示跳转到下一个活动。 Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); //startActivity方法 2)隐式跳转到下一个活动:需要下一个活动提供“匹配接口”Intentfilter。就相当于口令,一个人发出一条口令,另一个人对上了说明是自己人。 <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/>

使用揭露动画,让你的应用特效更进一步!

半腔热情 提交于 2019-12-13 06:25:38
/ 前言 / 完整叫法应该是圆形揭露动画,下文简称揭露动画,因为 Android 系统中只提供了这一种圆形的(Circular)揭露动画! 所谓揭露动画,就是一种用于 View (之间),甚至界面之间的特殊过渡动画效果。 AndroidPlatform 的 android.view 包下有个 ViewAnimationUtils 类,这是使用系统所提供揭露动画的唯一入口,其对外暴露的唯一接口如下: 通过其静态的 createCircularReveal 方法来构造一个动画(Animator)对象,具体其实是个 RevealAnimator 类对象,进而可以实现一种炫酷(到底炫不炫酷就很主观了)的动画效果! 靠动图来阐明揭露之意再合适不过,为此我写了个小 demo,运行效果如下: App 的揭露效果: Activity 的揭露效果: 普通 View 的揭露效果: 几图胜千言!以上就是所谓的揭露动画。Demo 源码(Kotlin)我已放至 Github,源码在此地址如下: https://github.com/xiaofei-dev/AppReveal 下面我们好好聊下这种过渡动画的具体实现。 墙裂建议结合 Demo 阅读本文,另外 Demo 中的代码注释十分详细,读者可以试试如果仅根据 Demo 中的源码注释就能理解上面效果背后的所有原理……下面的正文我还是建议你读一下! / 正文

处理使用Intent分享图片到微信朋友圈时,在微信7.0版本出现“获取资源失败,无法分享到朋友圈”,导致分享失败的问题

此生再无相见时 提交于 2019-12-12 13:03:36
在最近项目测试中,今天发现以前一直正常使用的分享图片到微信朋友圈的功能突然用不了了,点击分享到朋友圈时,提示“获取资源失败,无法分享到朋友圈”,测试手机微信是最近一两天刚更新到了微信7.0,以前该功能接口一直使用正常,为了验证这一点,卸载最新版微信,安装回上一微信版本6.7.3,发现图片分享到朋友圈功能接口正常,很明显,微信7.0大版本发布,图片分享到朋友圈的规则也发生了变化,如下是项目中一直以来处理图片分享(多图片)到朋友圈的主要代码(在已安装微信的前提下): /** * 分享图片到微信朋友圈 * @param bmp 分享的图片的Bitmap对象 * @param content 分享内容 */ public void shareImageToWechat (Bitmap bmp, String content) { File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsoluteFile(); String fileName = "share" ; File appDir = new File(file, fileName); if (!appDir.exists()) { appDir.mkdirs(); } fileName =