intent

隐式Intent出现问题报错

浪尽此生 提交于 2020-03-02 00:57:28
<activity android:name=".MyAty" > <intent-filter> <category android:name="android.intent.category.default" > </category> <action android:name="com.example.mjc.learnintentdemo.intent.action.myaty" /> </intent-filter> </activity> 这是主配置文件 然后在MianActivity调用StartActivity StartActivity(new Intent("com.example.mjc.learnintentdemo.intent.action.myaty")); 报错android.content.ActivityNotFoundException: No Activity found to handle Intent 解决方法: Android对待所有传递给Context.startActivity()的隐式intent好像它们至少包 含"android.intent.category.DEFAULT"(对应CATEGORY_DEFAULT常量)。因此,活动想要接收隐式 intent必须要在intent过滤器中包含"android.intent

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等事件中反注册,通过这种方式使其能够在运行期间保持对相关事件的关注。比如,一款优秀的词典软件(比如,有道词典...),可能会有在运行期间关注网络状况变化的需求

【学习笔记】Android5.X Notification新功能初识

人盡茶涼 提交于 2020-03-01 13:46:24
基本的Notification /** * 基本的Notification */ private void notificationBasic(){ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com")); //构造pendingIntent PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); //创建Notification对象 Notification.Builder builder = new Notification.Builder(this); //设置Notification的各种属性 builder.setSmallIcon(R.mipmap.ic_launcher); builder.setContentIntent(pendingIntent); builder.setAutoCancel(true); builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)); builder.setContentTitle("Basic

startActivity 报错

有些话、适合烂在心里 提交于 2020-03-01 04:02:50
原因是:   Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果 使用 Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新 的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 修改后代码如下: Intent intent = new Intent(); intent.setClass(mContext, PhotoView.class); Bundle bundle = new Bundle(); intent.putExtras(bundle); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); 来源: oschina 链接: https://my.oschina.net/u/2447831/blog/625912

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 )

Android中目的地Intent的使用

一笑奈何 提交于 2020-02-27 23:53:39
一、什么是Intent? Intent的中文意思是目的。在Android中也是“目的”的意思。就是我们要去哪里,从这个activity要前往另一个Activity就需要用到Intent。 示例代码一: 1: //定义一个Intent 2: Intent intent = new Intent(IntentDemo. this , AnotherActivity2. class ); 3: //启动Activity 4: startActivity(intent); 以上示例代码的作用是从IntentDemo这个activity切换到AnotherActivity2。这是Intent其中一种构造方法,指定两个Activity。为什么需要指定两个活动呢?因为在Android中有一个活动栈,这样的构造方式才能确保正确的将前一个活动压入栈中,才能在触发返回键的时候活动能够正确出栈。 注意:所有的Activity都必须先在AndroidManifest.xml里面配置声明。一下为本文用到的程序配置文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.halzhang.android.intent"

Android开发——Intent

醉酒当歌 提交于 2020-02-27 23:53:14
一、什么是Intent? Intent的中文意思是目的。在Android中也是“目的”的意思。就是我们要去哪里,从这个activity要前往另一个Activity就需要用到Intent。 示例代码一: 1: //定义一个Intent 2: Intent intent = new Intent(IntentDemo.this, AnotherActivity2.class); 3: //启动Activity 4: startActivity(intent); 以上示例代码的作用是从IntentDemo这个activity切换到AnotherActivity2。这是Intent其中一种构造方法,指定两个Activity。为什么需要指定两个活动呢?因为在Android中有一个活动栈,这样的构造方式才能确保正确的将前一个活动压入栈中,才能在触发返回键的时候活动能够正确出栈。 注意:所有的Activity都必须先在AndroidManifest.xml里面配置声明。一下为本文用到的程序配置文件 1: <?xml version="1.0" encoding="utf-8"?> 2: <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3: package="com.halzhang.android

intent Filter

和自甴很熟 提交于 2020-02-27 23:45:15
intent Filter 一、介绍 如果一个 Intent 请求在一片数据上执行一个动作, Android 如何知道哪个应用程序(和组件)能用来响应这个请求呢? Intent Filter就是 用来注册 Activity 、 Service 和 Broadcast Receiver 具有能在某种数据上执行一个动作的能力。 使用 Intent Filter ,应用程序组件告诉 Android ,它们能为其它程序的组件的动作请求提供服务,包括同一个程序的组 件、本地的或第三方的应用程序。 为了注册一个应用程序组件为 Intent 处理者,在组件的 manifest 节点添加一个 intent-filter 标签。 在 Intent Filter 节点里使用下面的标签(关联属性),你能指定组件支持的动作、种类和数据: 1.动作测试 <intent-filter>元素中可以包括子元素<action>,比如: view source print ? 1. < intent-filter > 2. < action android:name="com.example.project.SHOW_CURRENT" /> 3. < action android:name="com.example.project.SHOW_RECENT" /> 4. < action android:name=

一口一口吃掉Volley(二)

穿精又带淫゛_ 提交于 2020-02-27 04:14:03
欢迎访问我的 个人博客 转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(二)/ 相信看了 第一篇教程 之后,你应该会对Volley有一个初步的了解了吧,那接下来就继续学习如何使用Volley进行开发吧! 配置Gradle 使用如下命令导入Volley库: compile 'com.mcxiaoke.volley:library:1.0.19' 如果你还是使用Eclipse进行开发的话,可以下载 volley的jar包 导入工程。 添加联网许可 在AndroidManifest.xml文件中添加联网的请求 <uses-permission android:name="android.permission.INTERNET"/> 使用StringRequest 如果你需要通过网络访问的资源属于String字符串的资源,那么使用StringRequest就最为简单了,只需按照如下步骤就行了。 ① 获取一个RequestQueue RequestQueue mQueue = Volley.newRequestQueue(this); ② 构造一个StringRequest对象 StringRequest stringRequest=new StringRequest("http://www.wensibo.top" , new