activity

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a

做~自己de王妃 提交于 2019-12-10 04:08:16
1.错误描述 java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. xml: <activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar"/> Activity: public class MainActivity extends AppCompatActivity { ... } 2.错误原因 因为Activity不是继承了 androidx.appcompat.app.AppCompatActivity ,而不是 android.app.Activity ; 3.解决方案 把style.xml中的 DarkActionBar 改为 NoActionBar ; android:theme="@style/Theme.AppCompat.Light.NoActionBar" 来源: CSDN 作者: 牛八少爷 链接: https://blog.csdn.net/niuba123456/article/details/103460525

Deeplink实践原理分析

廉价感情. 提交于 2019-12-09 19:10:24
目录介绍 01.先看一个场景 02.什么是DeepLink 03.什么是Deferred DeepLink 04.什么是AppLink 05.DeepLink和AppLink核心技术 06.DeepLink实践方案 07.AppLink实践方案 08.部分问题思考总结 09.DeepLink原理分析 10.AppLink原理分析 01.先看一个场景 假设一个场景: 小明告诉小杨,一鹿有车APP上有一个很有创意的抽奖活动,小新想要参与这个活动 如果小杨已经安装了APP,他需要找到且打开APP,然后找到相应的活动,共计2步; 如果小杨没有安装APP,他需要在应用市场搜索一鹿有车APP、下载、打开APP且找到相应的活动,共计4步; 关于那些途径实现 通过短信息,比如收到脉脉好友信息,通过短信息打开app跳转制定页面。 通过短信息,比如收到天猫推荐消息,通过短信息打开浏览器,然后通过浏览器跳转指定页面。 通过分享到微信中h5页面,在微信中打开app(这个需要到微信开放平台做配置,其实是微信——>应用宝——>app指定页面)。 提出的需求: 在浏览器或者短信中唤起APP,如果安装了就唤起,否则引导下载。对于Android而言,这里主要牵扯的技术就是deeplink,也可以简单看成scheme,Android一直是支持scheme的,本文只简单分析下link的原理,包括deeplink

Android service的使用

假装没事ソ 提交于 2019-12-09 18:11:53
Services 一个 Service 是一个应用组件,它可以在后台执行耗时长的操作,而不提供用户接口。另一个应用组件可以启动一个service,然后它将在后台持续运行,即使用户切换到了另一个应用。此外,一个组件可以bind到一个service来与之交互,甚至执行进程间通信(IPC)。比如,一个service可以处理网络事务,播放音乐,执行文件I/O,或者与一个content provider交互,均是在后台。 一个service实质上可以有两种形式: Started 当一个应用组件(比如一个activity)通过调用 startService() 来启动一个service时,则 service 是 "started" 的。一旦被启动,一个service可以在后台无限期地运行,即使启动它的组件已经被销毁了。通常一个被启动的service执行一个单独的操作,并且不给调用者返回一个结果。比如,它可以通过网络下载或上传一个文件。当操作完成时,那个service应该自动停止。 Bound 当一个应用组件通过调用 bindService() 来bind一个service时,则service是 "bound"的。一个bound service提供了一个 允许组件与service交互的 客户端-服务器接口,发送请求,获取结果,甚至通过进程间通信(IPC)来夸进程执行这些。一个bound

Activity和Service交互

我的梦境 提交于 2019-12-09 18:07:27
As discussed in the Services document, you can create a service that is both started and bound. That is, the service can be started by calling startService() , which allows the service to run indefinitely, and also allow a client to bind to the service by calling bindService() . If you do allow your service to be started and bound, then when the service has been started, the system does not destroy the service when all clients unbind. Instead, you must explicitly stop the service, by calling stopSelf() or stopService() . Although you should usually implement either onBind() or onStartCommand()

EventBus事件总线分发库

谁说胖子不能爱 提交于 2019-12-09 17:13:21
本文围绕以下六个部分展开: 一、事件总线管理 二、EventBus 三、EventBus与BroadcastReceiver的区别 案例一 案例二:一处点击发送数据,另一处或多处注册点可以及时获取更新传输过来的数据 案例三:Activity和Service之间互相发布与接收事件 一、事件总线管理 将事件放入队列里,用于管理和分发。 (1)保证应用的各个部分之间高效的通信及数据、事件分发。 (2)模块间解耦:通过事件的分发,可以让各个模块间关联程序变小。 当在开发一些庞大的的项目时,模块比较多,这个时候为了避免耦合度和保证 APP 的效率,会用到 EventBus 等类似的事件总线处理模型。这样可以简化一些数据传输操作,保证APP的简洁,做到高内聚、低耦合。 二、EventBus 1. 概念 EventBus是一个发布/订阅的事件总线。它可以让两个组件相互通信,但是它们之间并不相互知晓。 EventBus模式,也被称为 Message Bus模式,或者 发布者/订阅者(publisher/subscriber)模式。 事件响应有更多的线程选择,EventBus 可以向不同的线程中发布事件。 EventBus 支持 Sticky Event。 2. 有3个主要的元素: (1)Event:事件。 Event可以是任意类型的对象。 (2)Subscriber:事件订阅者,接收特定的事件。

Android课程设计:学生信息管理

寵の児 提交于 2019-12-09 14:47:13
一. 需求分析 随着时代的进步,学生越来越多对于学生信息的管理也不断的在增加,需要能够一个能够管理学生信息的程序。 总体能够实现对学生基本信息包括:姓名、年龄、性别的记录,并且能够记录学生的选课情况,成绩,并且对成绩进行修改记录。 一. 系统总体设计 技术说明 UI 设计:通过 多种布局的嵌套及控件的使用 来达成效果,通过 TextView 控件显示文本信息,使用 Button 控件定义 onClick 属性并在 Activity 中定义方法实现点击,并且通过 RadioButton 在学生性别中判断,使用了 Edit Text 编辑框在登陆界面中,显示输入框中信息。 Activity 组件的应用 : 主要通过使用 Intent 、 Bundle 类来进行跳转,各个 Activity 界面之间的切换。 SQLite 数据库 : 创建了 SQLite 数据库,使用了 onCreate() 方法和 onUpgrade() 方法,并进行增删改查操作。 File 存储 : 使用了 openFileInput() 和 openFileOutput() 方法来存取以及读取设备上的数据,也采用了一些 Shared Preferences 类进行储存。 ListView :使用了 List View 和自定义适配器,点击 ListView 中的条目出现对话框进行修改

第四讲:Activity入门指南

怎甘沉沦 提交于 2019-12-09 11:16:47
一、理解Activity Activity是Android程序的4大组件之一。 Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。 学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。 下面看一下Activity类的继承关系: 从这里可以看到Activity是Context类的子类,大家对此先有个印象。 二、理解Activity的生命周期 手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。 在android中Activity有四种基本状态: 1、Running 位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。 2、Paused 当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。 3、Stop 当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。 4、Killed Activity被系统杀死或者跟本没启动时就是Killed状态。

android onActivityResult无效或先执行或无回传问题

十年热恋 提交于 2019-12-09 10:23:51
我的问题属于第一种情况,更改后下确有回传结果。 (http://www.cnblogs.com/tt_mc/p/3586834.html) Android Activity的加载模式和onActivityResult方法之间的冲突 前言 今天在调试程序时,发现在某一Activity上点击返回键会调用该Activity的onActivityResult()方法。我一开始用log,后来用断点跟踪调试半天,还是百思不得其解。因为之前其他的Activity的LaunchMode都是Normal,没有特殊设定,这个Activity由于需求改成了singleTop。直到我确定没有一个地方是代码主动触发的,我才想到了跟Activity的LaunchMode是否有关。 探索 在Google上搜索android activity onactivityresult singTop找到了一些问题。 stackoverflow stackoverflow上有些人跟我遇到的问题类似。比如说有一位开发者把Activity设置成了singleTask模式,onActivityResult就收不到任何结果了。当他把singleTask模式改回标准模式,又恢复正常。 这个问题下面给出的答案中,有一位说startActivityForResult的文档中有这么一句话: For example, if the

Fragment响应OnActivityResult方法

回眸只為那壹抹淺笑 提交于 2019-12-09 10:23:21
一个Activity+N个Fragment的做法非常普遍,Activity的职责就是(应该只是)对Fragment进行管理(调用切换、响应回调等),不该包含Fragment里的任何功能。Activity里有startActivityForResult及OnActivityResult,这通常都在Activity里出现。如果需要在Fragment里启动另一个程序(比如启动相机)且需要返回结果,则需要使用 startActivityForResult来启动Activity并使用 OnActivityResult来接收返回结果,那么直接在Fragment里使用 startActivityForResult和 OnActivityResult。 来源: oschina 链接: https://my.oschina.net/u/116399/blog/618173

Android常见错误

这一生的挚爱 提交于 2019-12-09 10:02:23
1 、 Unable to resolve target 'android-2' 安装低版本的 api ,再 default.properties 这个文件中把 target=android-2 改成 target=android-7 终于就没有问题了。 2 、 Invalid start tag LinearLayout main.xml 放错文件夹了,应该在 \res\layout 下。 3 、 INSTALL_FAILED_INSUFFICIENT_STORAGE 原因: SD 卡内存容量不够 法一:在下图的“ Additional Emulator Command Line Options ”中加上“ -partition-size 128 ” 法二:启动模拟器,然后进入菜单 settings->applications->mange applications-> select the application->select "unistall". 这样就能彻底删除了,然后再重新安装这个 apk 就没问题了 4 、 No Space left on device 清除 C:\Users\Lanyan\AppData\Local\Temp\AndroidEmulator 文件夹下的 tmp 文件 参考资料: http://hi.baidu.com/boderboder