intent传递对象

占位式插件化二Service的启动

为君一笑 提交于 2019-12-26 08:10:27
系列文章 占位式插件化一Activity的跳转 占位式插件化的本质,就是用代理Activity或者Service使用插件app中的资源或者方法,从而达到执行插件APP的目的。 仿照Activity的跳转,可以知道启动插件APP中的Service,需要新增以下几个类,ServiceInterface做协议支持,BaseService实现ServiceInterface接口,ProxyService在宿主APP中占位,通过ProxyService即可启动插件APP中的Service,与其说启动了插件APP中的Service,不如说调用了插件APP中Service的方法。这时候插件APP中的Service也就只是一个普通的类,而不是安卓的四大组件之一的Service。 接口协议 public interface ServiceInterface { void insertAppService(Service appService); int onStartCommand(Intent intent, int flags, int startId); void onCreate(); } 插件APP的BaseService public class BaseService implements ServiceInterface { protected Service appService;

Service 启动Activity

微笑、不失礼 提交于 2019-12-21 14:21:07
1, 在BroadcastReceiver中启动Activity的问题 * * 如果在BroadcastReceiver的onReceive()方法中如下启动一个Activity * Intent intent=new Intent(context,AnotherActivity.class); * context.startActivity(intent); * 可捕获异常信息: * android.util.AndroidRuntimeException: * Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. * Is this really what you want? * 它说明:在Activity的context(上下文环境)之外调用startActivity()方法时 * 需要给Intent设置一个flag:FLAG_ACTIVITY_NEW_TASK * * 所以在BroadcastReceiver的onReceive()方法中启动Activity应写为: * Intent intent=new Intent(context,AnotherActivity.class); * intent.setFlags

初识android——四大组件

末鹿安然 提交于 2019-12-18 02:31:07
android的四大组件:Activity、Service、ContentProvider、BroadCast activity Activity之间的调用和参数传递: 1、 android通过activity窗口与用户进行交互,它相当于一个个jsp展示页面; 2、 通过intent来控制activity的跳转;打开新的activity的方法: View Code 1 Intent intent = new Intent();2 intent.setClass(MainActivity.this, OtherActivit.class);3 //或者4 intent.setConponent(new CompunentName(MainActivity.this,OtherActivity.class)); 1、 Activity之间的传值:intent.putExtra(“id”,10); 传一个对象:序列化参数传递 取值: Intent intent = this.getIntent(); Int id = intent.getIntExtra(“id”,0); String name = intent.getStringExtra(“name”); 另外,可以通过intent反向传递参数…… MainActivity.this.startActivityForResult

Android service的完全详解

穿精又带淫゛_ 提交于 2019-12-17 06:10:18
Service全部内容基本会在本篇涉及到,我们将围绕以下主要知识点进行分析: Service简单概述 Service在清单文件中的声明 Service启动服务实现方式及其详解 Service绑定服务的三种实现方式 关于启动服务与绑定服务间的转换问题 前台服务以及通知发送 服务Service与线程Thread的区别 管理服务生命周期的要点 Android 5.0以上的隐式启动问题及其解决方案 保证服务不被杀死的实现思路 1.Service简单概述   Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行,Service基本上分为两种形式: 启动状态   当应用组件(如 Activity)通过调用 startService() 启动服务时,服务即处于“启动”状态。一旦启动,服务即可在后台无限期运行,即使启动服务的组件已被销毁也不受影响,除非手动调用才能停止服务, 已启动的服务通常是执行单一操作,而且不会将结果返回给调用方。 绑定状态  

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

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

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

半腔热情 提交于 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 中的源码注释就能理解上面效果背后的所有原理……下面的正文我还是建议你读一下! / 正文

Android开发小札(一)

二次信任 提交于 2019-12-10 02:20:11
这个小札记主要记录了开发中遇到的问题和解决方案,还有一些源码技巧。 • ImageView方法setImageUri导致OOM 获取到本地图片的Uri以后直接通过setImageUri导致了OutOfMemoryError 分析: 使用setImageUri是直接对uri对应的图片进行加载的,如果图片过大,就会造成OOM 解决: 使用Glide加载,或者对图片进行压缩处理后再设置 • 一个HashCode的生成方法 public class Actor { private final int id ; private final String name ; private final int rating ; private final int yearOfBirth ; public Actor ( int id , String name , int rating , int yearOfBirth ) { this . id = id ; this . name = name ; this . rating = rating ; this . yearOfBirth = yearOfBirth ; } // getter @Override public boolean equals ( Object o ) { if ( this == o ) return true ;

Android中BindService方式使用的理解

核能气质少年 提交于 2019-12-09 15:56:33
最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现。 BindService和Started Service都是Service,有什么地方不一样呢: 1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,即使调用者退出了,服务依然在进行【onCreate()- >onStartCommand()->startService()->onDestroy()】,注意其中没有onStart(),主要是被onStartCommand()方法给取代了,onStart方法不推荐使用了。 2. BindService中使用bindService()方法来绑定服务,调用者和绑定者绑在一起,调用者一旦退出服务也就终止了【onCreate()->onBind()->onUnbind()->onDestroy()】。 调用者Activity: MainAcitvity package com.zys.service; import com.zys.service.BindService.MyBinder; import android.R.bool; import android.app.Activity; import android.content

Android中BindService方式使用的理解

人走茶凉 提交于 2019-12-09 15:56:19
最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现。 BindService和Started Service都是Service,有什么地方不一样呢: 1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,即使调用者退出了,服务依然在进行【onCreate()- >onStartCommand()->startService()->onDestroy()】,注意其中没有onStart(),主要是被onStartCommand()方法给取代了,onStart方法不推荐使用了。 2. BindService中使用bindService()方法来绑定服务,调用者和绑定者绑在一起,调用者一旦退出服务也就终止了【onCreate()->onBind()->onUnbind()->onDestroy()】。 调用者Activity: MainAcitvity package com.zys.service; import com.zys.service.BindService.MyBinder; import android.R.bool; import android.app.Activity; import android.content