intent

Android EventBus的使用

旧城冷巷雨未停 提交于 2019-12-27 03:42:36
这个其实和Intent传值差不多,但我们用Intent传值的时候消耗非常大,这个消耗就非常小了,我们可以看到, 手机页面都没有看到Activity的切换,也没有闪动; 首先需要导入依赖 compile 'org.greenrobot:eventbus:3.0.0' 先来介绍普通的事件(这个就类似我么的startActivityForResult()) 然后就是写代码了,首先是要注册: EventBus.getDefault().register(MainActivity.this); 然后就是我们要启动的Activity Intent intent = new Intent(getApplicationContext(), JIeshou.class); startActivity(intent); 然后就是我们要发送的东西,要在我们要发送的Activity中写: EventBus.getDefault().post(new AnyEventType("接受到了")); finish(); 然后我们又要在MainActivity中接受了: @Subscribe(threadMode = ThreadMode.MAIN) public void userEventBus(AnyEventType userEvent){ tv.setText(userEvent.getmMsg());

ARouter路由解析

谁说胖子不能爱 提交于 2019-12-27 02:44:45
目录介绍 01.原生跳转实现 02.实现组件跳转方式 2.1 传统跳转方式 2.2 为何需要路由 03.ARouter配置与优势 04.跨进程组件通信 4.1 URLScheme 4.2 AIDL 4.3 BroadcastReceiver 4.4 路由通信注意要点 05.ARouter的结构 06.ARouter的工作流程 6.1 初始化流程 6.2 跳转页面流程 07.ARouter简单调用api 7.1 最简单调用 7.2 build源码分析 7.3 navigation分析 08.Postcard信息携带 09.LogisticsCenter 10.DegradeService降级容错服务 11.Interceptor拦截器 12.数据传输和自动注入 13.多dex的支持 14.InstantRun支持 15.生成的编译代码 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计N篇[近100万字,陆续搬到网上],转载请注明出处,谢谢! 链接地址: https://github.com/yangchong211/YCBlogs

Android面试之---讲一下你对Activity的了解(面试必问的).

冷暖自知 提交于 2019-12-26 21:20:58
这篇文章会涉及到以下几个内容 一 Activity的生命周期 二 让Activity变成一个窗口:Activity属性设定 三 你后台的Activity被系统 回收怎么办:onSaveInstanceState 四 调用与被调用:我们的通信使者 - Intent 一 Activity的生命周期 和其他手机 平台 的应用 程序 一样, Android 的应用程序 的生命周期是被统一掌控 的,也 就是说我们写的应用程序命运掌握在别人(系统)的手里,我们不能改变它,只能学习 并 适应它。 简单地说一下为什么是这样:我们手机在运行 一个应用程序的时候,有可能打进来电话 发进来短信 ,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能 ,另 外系统也不允许你占用太多资源 ,至少要保证电话功能吧,所以资源不足的时候也就有可 能被干掉。 言归正传,Activity的基本生命周期如下代码 所示: Java 代码 public class MyActivity extends Activity { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onResume(); protected void onPause(); protected void

占位式插件化二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;

Intent 过滤器笔记

▼魔方 西西 提交于 2019-12-26 07:41:09
使用 Intent 过滤器 元素还可指定各种 Intent 过滤器—使用 元素—以声明其他应用组件激活它的方法。 当您使用 Android SDK 工具创建新应用时,系统自动为您创建的存根 Activity 包含一个 Intent 过滤器,其中声明了该 Activity 响应“主”操作且应置于“launcher”类别内。 Intent 过滤器的内容如下所示: 元素指定这是应用的“主”入口点。 元素指定此 Activity 应列入系统的应用启动器内(以便用户启动该 Activity)。 来源: CSDN 作者: 可乐_@吸管 链接: https://blog.csdn.net/nn690960430/article/details/103698633

Android组件之BroadcastReceiver

二次信任 提交于 2019-12-26 06:14:24
Android组件之BroadcastReceiver BroadcastReceiver介绍 广播的种类 标准广播(Normal Broadcast) 有序广播(Ordered Broadcast) 本地广播(Local Broadcast) 粘性广播(Sticky Broadcast) 本地广播的优势 注册广播的方式 静态注册 动态注册 动态注册和静态注册的区别 广播的发送 发送标准广播 发送有序广播 发送本地广播 发送Sticky广播 BroadcastReceiver使用注意 BroadcastReceiver介绍 BroadcastReceiver是Android四大组件之一,是Android开发中使用最频繁的类之一,是一种广泛运用的在应用之间消息传输机制。 Android的广播机制是一个典型的发布-订阅模式,就是观察者模式,它最大的特点就是发送方不关心接收方是否接收到数据,也不关心接收方是如何处理数据。通过这样的形式来达到接收双方的完全解耦。一个广播可以有一个或多个接收者。 广播机制主要用来监听系统或者应用发出的广播信息,然后根据广播信息做出相应的逻辑处理,也可以用来传输少量的低频数据。 Android中的广播机制包含三部分,分别是用于发送广播的Broadcast、接收广播的BroadcastReceiver和用于传递消息的Intent

Intent的几个用法总结

会有一股神秘感。 提交于 2019-12-25 03:06:14
如果我们想在在各个活动之间进行穿梭,我们就需要使用到Intent。 Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想执行的动作,还可以在不同组件之间传递数据。 Intent一般可以用于启动活动,启动服务以及发送广播等。 Intent可以分为显式Intent和隐式Intent,其实就是Intent的不同方法的重载。 显式Intent用法很简单,直接在Intent的两个参数中指出上下文再启动活动就行 Intent intent = new Intent(FirstActivity.this,SecondActivity.class); startActivity(intent); 而隐式就比较间接一些,是在构造intent时在参数中指定一系列抽象的action和category等信息,然后让系统分析找出和intent中信息一致的活动去跳转。实现隐式intent来启动方法。 还可以用隐式intent来启动其他程序的活动。这里就需要了解一些常用的intent动作。利用这些Android内置意图动作就可以简单的实现利用已有的资源去实现自己需要的功能呢。 intent内置意图动作总结 还可以使用intent来向下一个活动传递数据,返回数据给上一个活动。 总之,intent是一个很强大的功能,学起来吧! 来源: CSDN 作者: 帅气又努力 链接:

利用Service后台播放音乐实例

依然范特西╮ 提交于 2019-12-25 01:48:20
AndroidManifest.xml //在这个文件中建立service标签 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" http://schemas.android.com/apk/res/android " package="com.example.ok2" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.ok2.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" />

Android的PackageName和ComponentName

ぐ巨炮叔叔 提交于 2019-12-25 01:15:54
(1)PackageName: [是一个字符串] 就是AndroidManifest.xml文件中的package=“com.android.car.media.localmediaplayer” (2)ComponentName: [是一个对象,包含了PackageName和ClassName] 可以定位App,使用它可以打开一个App的Activity或Service。 public void testComponentName ( View view ) { Intent intent = new Intent ( ) ; String pageName = getPackageName ( ) ; //第一种方式实现 ComponentName componentName = new ComponentName ( pageName , "com.android.car.media.localmediaplayer.LocalMediaBrowserService" ) ; //第二种方式实现 ComponentName componentName = new ComponentName ( MainActivity . this , "com.android.car.media.localmediaplayer.LocalMediaBrowserService" ) ;

全局性Dialog(以及遇到的坑)

社会主义新天地 提交于 2019-12-24 01:56:56
完善后的全局性dialog代码: 添加权限: <!--动作管理覆盖权限--> < uses-permission android: name = " android.permission.ACTION_MANAGE_OVERLAY_PERMISSION " /> <!--系统警报窗口--> < uses-permission android: name = " android.permission.SYSTEM_ALERT_WINDOW " /> 完善代码: @Override protected void onCreate ( Bundle savedInstanceState ) { super . onCreate ( savedInstanceState ) ; setContentView ( R . layout . activity_main ) ; // 先判断系统是否为6.0 if ( Build . VERSION . SDK_INT >= Build . VERSION_CODES . M ) { // M == 23 // 再判断是否 有了悬浮窗权限 if ( ! Settings . canDrawOverlays ( LoginActivity . this ) ) { // 没有此权限,跳转到此权限页面,让用户手动开启 Intent intent =