intent传递对象

Android---如何返回上一Activity

可紊 提交于 2020-03-08 17:08:53
Android 代码用来返回上一个activity 调用onKeyDown()时发生java.lang.NullPointerException. 来自:CSDN博客推荐文章 | 时间:2012-05-04 22:42:12 原文链接: http://blog.csdn.net/weiyirong/article/details/7536495 很多人想从一个Activity返回到上一级Activity时,考虑通过在点击事件里调用OnKeyDown事件来返回上一级,如下: toolbarBack.setOnClickListener(newOnClickListener(){@Overridepublicvoid onClick(View v){OnKeyDown(KeyEvent.KEYCODE_BACK,null);}}); 会发现报空指针错误,具体原因看下源码,你没传入的参数(即null)在OnKeyDown方法中使用到了,所以空指针。 其实返回上一级,不用考虑如此复杂,我们可以使用如下:直接结束当前Activity不就行了。测试可用 toolbarBack.setOnClickListener(newOnClickListener(){@Overridepublicvoid onClick(View v){ReaderActivity.this.finish(); }});

第十二单元 BroadCastReceiver安卓的广播接收者

℡╲_俬逩灬. 提交于 2020-03-05 01:06:46
BroadCastReceiver安卓的广播接收者 一、广播介绍 1.广播接收者作用以及机制 2.项目中广播接收者的使用 3.广播接收者生命周期 二、广播分类 1.无序广播发送 (也叫标准广播) 2.有序广播 三、广播接受者 1.创建广播接收者 四、注册广播接受者 1.静态注册 2.动态注册 一、广播介绍 1.广播接收者作用以及机制 其实BroadcastReceiver就是应用程序间的全局大喇叭,即通信的一个手段, 系统自己在很多时候都会发送广播,比如电量低或者充足,刚启动完,插入耳机,输入法改变等, 发生这些时间,系统都会发送广播,这个叫系统广播,每个APP都会收到,如果你想让你的应用在接收到 这个广播的时候做一些操作,比如:系统开机后,偷偷后台跑服务哈哈,这个时候你只需要为你的应用 注册一个用于监视开机的BroadcastReceiver,当接收到开机广播就做写偷偷摸摸的勾当~ 当然我们也可以自己发广播,比如:接到服务端推送信息,用户在别处登录,然后应该强制用户下线回到 登陆界面,并提示在别处登录当然,这些等下都会写一个简单的示例帮大家了解广播给我们带来的好处. 2.项目中广播接收者的使用 BroadCastReceiver广播接受者,安卓四大组件之一 广播三要素 : ( 1 )广播发送者 : 发送广播 ( 2 )广播接收者 ( 调频 ) : 用于接收广播 ( 3

android task and activity

烈酒焚心 提交于 2020-03-02 08:22:27
a usful blog. http://changeyouforever.iteye.com/blog/1160038 android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。 如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。 一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来 强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。 例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序 定义的,但是,现在它作为e-mail Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当e-mail Task再次进入前台时,就看不到它了。

BroadcastReceiver—学习

岁酱吖の 提交于 2020-03-01 17:31:54
android broadcastReceiver学习 在实际应用中,我们常需要等,等待系统抑或其他应用发出一道指令,为自己的应用擦亮明灯指明方向。 在Android中,充分考虑了广泛的这类需求,于是就有了Broadcast Receiver这样的一个组件。 每个Broadcast Receiver都可以接收一种或若干种Intent作为触发事件(有不知道Intent的么,后面会知道了...),当发生这样事件的时候,系统会负责唤醒或传递消息到该Broadcast Receiver,任其处置。在此之前和这以后,Broadcast Receiver是否在运行都变得不重要了,及其绿色环保。 这个实现机制,显然是基于一种注册方式的, Broadcast Receiver的相关信息写在配置文件中 ,系统会负责在相关事件发生的时候及时通知到该Broadcast Receiver,这种模式适合于这样的场景。 某事件方式 -> 通知Broadcast -> 启动相关处理应用。 比如,监听来电、邮件、短信之类的,都隶属于这种模式。 还有一种 通常是在 OnResume事件中通过registerReceiver进行注册,在OnPause等事件中反注册,通过这种方式使其能够在运行期间保持对相关事件的关注。比如,一款优秀的词典软件(比如,有道词典...),可能会有在运行期间关注网络状况变化的需求

android四大组件之intent

半腔热情 提交于 2020-02-28 22:58:26
什么是Intent Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。 Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的,不同类型的组件有不同的传递Intent方式: 要激活一个新的Activity,或者让一个现有的Activity做新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。 要启动一个新的Service,或者向一个已有的Service传递新的指令,调用Context.startService()方法或者调用Context.bindService()方法将调用此方法的上下文对象与Service绑定。 Context

Android|用户注册案例下的Activity数据传递

筅森魡賤 提交于 2020-02-28 13:00:24
思路分析   在源 Activity 使用一个容器存放需要传递的数据,然后把这个容器传递给目标目标 Activity,获取数据。因为有查找需求,所有这个容器一定是 map 结构。Bundle对象就可以充当这个容器。Bundle:A mapping from String keys to various {@link Parcelable} values. 传递步骤   1. 将数据存入到 Bundle对象中。   2. 将 Bundle 对象放入到 Intent 对象中。   3. 跳转到的 Activity 获取Intent 对象,拿到其中的 Bundle对象,然后获取数据。 以用户注册为例 用户输入用户名和密码,点击注册后跳到数据展示页面 public class RegisterActivity extends AppCompatActivity { @Override protected void onCreate ( Bundle savedInstanceState ) { super . onCreate ( savedInstanceState ) ; setContentView ( R . layout . activity_register ) ; } /** * 注册 * @param v */ public void register ( View v )

Activity启动流程

岁酱吖の 提交于 2020-02-26 03:25:35
转载请标明出处: 一片枫叶的专栏 好吧,终于要开始讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了 Android 体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍: An activity represents a single screen with a user interface. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. Although the activities work together to form a cohesive user experience in the email application, each one is independent of the others. As such, a different application can start any

android中跨进程通讯的4种方式

放肆的年华 提交于 2020-02-04 09:51:29
转自: http://www. android sdn.com/article/show/137 由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。   其中 Activity 可以跨进程调用其他应用程序的Activity;    Content Provider 可以跨进程访问其他应用程序中的数据(以Cursor对象形式返回),当然,也可以对其他应用程序的数据进行增、删、改操 作;    Broadcast 可以向android系统中所有应用程序发送广播,而需要跨进程通讯的应用程序可以监听这些广播;    Service 和Content Provider类似,也可以访问其他应用程序中的数据,但不同的是,Content Provider返回的是Cursor对象,而Service返回的是Java对象,这种可以跨进程通讯的服务叫AIDL服务。 完整示例请参阅本文提供的源代码。 方式一:访问其他应用程序的Activity Activity既可以在进程内(同一个应用程序)访问,也可以跨进程访问

Android模块开发-----用户信息模块(Fragment和Activity之间数据的传递)

天大地大妈咪最大 提交于 2020-02-03 00:04:52
在上一章节的 《Android模块开发------SQLite数据库的使用(登录模块)》 中,介绍了基本的登录模块,本节介绍一下用户模块的设计思路。 在登录成功,进入主界面后,通过ViewPager+Fragment的形式将Fragment添加到MainActivity,在用户UserFragment中,主要负责处理的就是显示当前用户的用户名,还有退出登录等简单的操作,后续有功能添加会在此更新。 (1)Activity和Activity之间数据的传递。 这种数据的传递方式,是开发过程中最常见的,通常会使用Intent、Bundle来进行数据的携带,然后跳转Activity。 Intent intent = new Intent ( ) ; //携带用户名信息到UserFragment显示 intent . putExtra ( "username" , username ) ; intent . setClass ( LoginActivity . this , MainActivity . class ) ; startActivity ( intent ) ; 使用Intent携带数据信息到MainActivity,在MainActivity中,通过下面的方式,可以得到传递的用户名信息。 String username = getIntent ( ) .

Android Intent用法总结

时光总嘲笑我的痴心妄想 提交于 2020-01-31 00:46:05
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的 Activity / Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 1. Intent作用 Intent是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由 Intent来协助完成 Android各个组件之间的通讯。比如说调用startActivity()来启动一个Activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver,再或者由startService() / bindservice()来启动一个后台的 service。所以可以看出来,Intent 主要是用来启动其他的 activity 或者 service,所以可以将 intent 理解成 activity 之间的粘合剂。 Intent作用的表现形式为: 启动Activity 通过Context.startActvity() / Activity