activity

安卓开发过程中遇到问题总结二

前提是你 提交于 2019-12-03 22:10:41
1.android 自定义view报如下错误:java.lang.IllegalStateException: Underflow in restore 原因:在自定义view里面调用了如下方法来保存画布的bitmap图像; mCanvas.restore() 解决方法:改成: mCanvas.save(); mCanvas.restore(); Okay!解决! 2.使用Intent传递数据量大时(尤其是bitmap对象),app没反应? android四大组件之间Intent传递数据,数据不能过大,基本要小于1M,不然会导致程序黑屏,ANR. 3.this.requestWindowFeature(Window.FEATURE_NO_TITLE);代码中去掉标题栏使用时报错? 当我们的Activity是继承自Activity或者是FragmentActivity时不会有问题;但当我们继承的是AppCompatActivity时就会报错, 解决方法是 getSupportActionBar().hide()或者是这是主题为Theme.AppCompat.Light.NoActionBar; 4.在使用第三方库经常报有一些v4,v7包冲突问题? 在封装library的时候,尽量不要引入第三方包,v4,v7等自带的包也是一样尽量不要引入,避免以后工程依赖的时候,包或者包内文件产生冲突

Android Studio打包cocos creator项目出现java.lang.UnsatisfiedLinkError:SDKWrapper.nativeLoadAllPlugins:()

瘦欲@ 提交于 2019-12-03 22:10:26
最近用 cocos creator 开发一个游戏,用 Android Studio 打包 Apk 时却出现了以下错误: Process: org.cocos2dx.javascript, PID: 24123 java.lang.UnsatisfiedLinkError: Native method not found: org.cocos2dx.javascript.SDKWrapper.nativeLoadAllPlugins:()V at org.cocos2dx.javascript.SDKWrapper.nativeLoadAllPlugins(Native Method) at org.cocos2dx.javascript.SDKWrapper.init(SDKWrapper.java: 36 ) at org.cocos2dx.javascript.AppActivity.onCreate(AppActivity.java: 47 ) 看到这个错误我就懵了,这是个什么鬼?真是一点头绪都没有,然后就是上网各种搜,然后。。。没有一个有用的。。。 最后没办法,只好用最原始的办法,删除项目,然后用cocos creator重新构建一下,然后再用Android Studio打开构建后的项目,这次倒是一切都正常,然而,当我新建一个Activity并将其设置为 启动

android开发中如何结束所有的activity

自闭症网瘾萝莉.ら 提交于 2019-12-03 19:28:48
每一个activity都有自己的生命周期,被打开了最终就要被关闭。 四种 结束当前的activity方法 Java代码 //关闭当前activity方法一 finish(); //关闭当前界面方法二 android.os.Process.killProcess(android.os.Process.myPid()); //关闭当前界面方法三 System.exit( 0 ); //关闭当前界面方法四 this .onDestroy(); 但如果已经 启动了四个 Activity:A,B,C和D, 在D Activity里,想再启动一个Activity B,但不变成A,B,C,D,B,而是 希望是A,B ,而且B上的数据依然保留 Java代码 Intent intent = new Intent(); intent.setClass(TableActivity. this , FrameActivity. class ); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); //设置不要刷新将要跳到的界面 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //它可以关掉所要到的界面中间的activity startActivity(intent); 如果已经 启动了四个 Activity

android.view.WindowManager$BadTokenException:~~

▼魔方 西西 提交于 2019-12-03 15:53:24
因为使用了AsyncTask 异步线程在线程完成以后的onPostExecute方法里面弹出窗口。 这个时候如果用户在onPostExecute调用之间按了返回按钮,activity已经onDestory了, 那么就会报出android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4479b390 is not valid; is your activity running? 解决方法一在弹出窗口之前用Activity的isFinishing判断一下Activity是否还存在 Java代码 protected void onPostExecute(Object result) { if (!isFinishing()) { showDialog(MY_DIALOG_ID); } } 解决方法二在show的时候捕获一下异常。 来源: oschina 链接: https://my.oschina.net/u/1244156/blog/222296

Handler Class Should be Static or Leaks Occur

寵の児 提交于 2019-12-03 15:38:00
在使用Handler更新UI的时候,我是这样写的: public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO } } } 看起来很正常的,但是 Android Lint 却给出了警告: This Handler class should be static or leaks might occur 意思是说:这个Handler 必须是static的,否则就会引发内存泄露。 其实,对于这个问题,Android F ramework 的工程师 Romain Guy 早已经在Google论坛上做出过解释,并且给出了他的建议写法: I wrote that debugging code because of a couple of memory leaks I found in the Android codebase. Like you said, a Message has a reference to the Handler which, when it's inner and non-static, has a

第七次作业

岁酱吖の 提交于 2019-12-03 14:41:51
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.js.MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="

第七次作业

空扰寡人 提交于 2019-12-03 14:41:33
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.qaq.MainActivity" > <requestFocus /> <ImageView android:id="@+id/imageView1" android:layout_width="70dp" android:layout_height="70dp" android:layout

Intent匹配规则以及解析框架深入分析

有些话、适合烂在心里 提交于 2019-12-03 12:34:20
关于Intent以及IntentFilter的基本知识,大家可以参阅如下资料, SDK中对Intent与IntentFilter的介绍 ---- 英文 其中文翻译如下: Android开发之旅: Intents和Intent Filters(理论部分) 我重点分析一下两个方面: 第一部分 、Intent以及IntentFilter说明以及匹配规则分析 第二部分:Intent的解析过程分析 第一部分 、Intent以及IntentFilter说明以及匹配规则分析 想当初我看Intent相关知识时,对Intent、IntentFilter的理解就很差劲,总觉得系统定义了一个Intent,为何还要整理个 IntentFilter出来"祸害"广大程序猿呢?但不解归不解,在具体使用咱可不能含糊,于是只好依葫芦画瓢了,反正绝对还不错。 一、温故而知新 :Intent与IntentFilter两问。 * 它们是什么 ? * 它们的区别在哪儿 ? 事实上,这两个问题可以归纳为Intent和Intent的主要功能是什么 ? 大家可以先扪心自问下,看看你的掌握程度如何 ? 我的理解如下: * Intent : 主要功能是根据特定的条件找到匹配的组件,继而对该组件执 行一些操作。比如执行startActivity()时,系统 首先要找到特定的Activity组件,然后执行onCreate()方法;

Activity经典实例一:两个Activity传递数据和对象

房东的猫 提交于 2019-12-03 12:34:01
1、概述: Activity类直接或者间接地继承了Context、ContextWrapper、ContextThemeWrapper等基类,因此Activity可以直接调用它们的方法。 创建一个Activity需要实现某些方法,常见的是实现 onCreate(Bundle status) 方法,该方法将会在Activity创建时被回调,它调用 setContentView(View view) 方法来显示要展示的View。 一个Android应用常常有多个Activity,但是只有一个作为程序的入口,其他的Activity通常都由入口Activity、及其后者启动。 2、Activity启动另一个Activity的方法: startActivity (Intent intent) :启动其他Activity; startActivityForResult (Intent intent, int requestCode) :以指定请求码(requestCode)启动Activity,而且程序将会等到新启动Activity的结果(通过重写onActivityResult(...)方法来获取结果)。 3、关闭Activity的方法: finish ():结束掉当前的Activity; finishActivity (int requestCode)

Android Graphic : apk and Skia/OpenGL|ES

只愿长相守 提交于 2019-12-03 12:27:50
Android apk 里面的画图分为2D和3D两种:2D是由 Skia 来实现的,也就是我们在框架图上看到的SGL,SGL也会调用部分 opengl 的内容来实现简单的3D效果;3D部分是由OpenGL|ES实现的,OpenGL|ES是Opengl的嵌入式版本,我们先了解一下Android apk的几种画图方式,然后再来来看一看这一整套的图形体系是怎么建立的。 首先画图都是针对提供给 应用 程序的一块内存填充 数据 , 没去研究过一个Activity是否就对应着底层的一个surface,但是应该都是对这块surface内存进行操作。因此说穿了就是我们要么调用2D 的API画图,要么调用3D的API画图,然后将画下来的图保存在这个内存中,最后这个内存里面的内容会被Opengl渲染以后变为可以在屏幕上的像素信息。 一 、Apk应用主要关心的还是这些API的使用,在Android apk里面画图有2种方式 [2D]: 1、Simple Graphics in View 就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-defined animation等等,这些简单的画图操作实际上是由skia来提供的2D图形操作。使用这些预定义好的操作,我们可以实现诸如贴一张背景图啊,画出简单的形状,实现一些简单的动画之类的操作