activity

Activity在屏幕显示的方向切换

Deadly 提交于 2020-01-13 14:59:52
Activity在屏幕显示的方向切换    android:screenOrientation 和 android:configChanges   Activity的内容在屏幕上的显示方向,有时会旋转。   a ctivity内容方向的设定与转换,以及相关的生命周期处理,是与Manifest中activity标签下的下面两个属性相关的:   即 android:screenOrientation 和 android:configChanges   (链接中有所有属性的说明: http://developer.android.com/guide/topics/manifest/activity-element.html#screen ) Android的屏幕方向状态是下列的值之一: ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ActivityInfo.SCREEN_ORIENTATION_USER ActivityInfo.SCREEN_ORIENTATION_BEHIND ActivityInfo.SCREEN_ORIENTATION_SENSOR ActivityInfo

android home键

偶尔善良 提交于 2020-01-13 14:57:46
引用: http://www.linuxidc.com/Linux/2012-01/51332.htm 当我们从Home点击ShortCut图标启动一个应用程序后,这个应用程序打开了很多个Activity,假设顺序为A,B,C,然后我们按Home键,再次从桌面用图标启动这个应用程序,我们会发现显示的是刚才的C,而不是A。这里我们普遍的想法是按Home键是让程序退到后台,然后让桌面显示出来。那么我们就来看看Home键到底是怎么回事。 在Framework中我们找到源码,我们首先在interceptKeyBeforeDispatching这个方法中找到Home按键代码如下 [java] // If the HOME button is currently being held, then we do special // chording with it. if (mHomePressed) { // If we have released the home key, and didn't do anything else // while it was pressed, then it is time to go home! if (keyCode == KeyEvent.KEYCODE_HOME) { if (!down) { mHomePressed = false ; if (

android WebView Note

拟墨画扇 提交于 2020-01-13 12:10:26
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。 什么是webkit WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。 传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon 3采用V8引擎,却仍然宣称自己是WebKit内核)。 这里我们初步体验一下在android是使用webview浏览网页,在SDK的Dev Guide中有一个WebView的简单例子 。 在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。 2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。

Activity/Window/View三者的差别

早过忘川 提交于 2020-01-13 09:14:04
Activity/Window/View三者的差别,fragment的特点 Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图) LayoutInflater像剪刀,Xml配置像窗花图纸。 在Activity中调用attach,创建了一个Window 创建的window是其子类PhoneWindow,在attach中创建PhoneWindow 在Activity中调用setContentView(R.layout.xxx) 其中实际上是调用的getWindow().setContentView() 调用PhoneWindow中的setContentView方法 创建ParentView: 作为ViewGroup的子类,实际是创建的DecorView(作为FramLayout的子类) 将指定的R.layout.xxx进行填充 通过布局填充器进行填充【其中的parent指的就是DecorView】 调用到ViewGroup 调用ViewGroup的removeAllView(),先将所有的view移除掉 添加新的view:addView() Fragment 特点 Fragment可以作为Activity界面的一部分组成出现; 可以在一个Activity中同时出现多个Fragment

Android基础之Activity基本跳转(2)

我的梦境 提交于 2020-01-13 04:06:35
本文转载自: https://www.cnblogs.com/flyone/archive/2011/07/14/2106001.html 作者:flyone 转载请注明该声明。 我的淘宝店铺, http://shop61982302.taobao.com/ , 欢迎大家光临! 你懂的, 呵呵 ! 简单介绍activity的跳转,通过intent实现,详细的注释在代码中。涉及到activity跳转,intent调用,button事件处理,xml文件编辑等知识。麻雀虽小,五脏俱全!废话少说,开始了...... 先看一下运行效果图: 点击first跳转到第二个activity 点击second会返回到第一个activity,并带回返回信息,如下图: 1 新建project,大家注意我的命名,前面都加前缀了,对于初学者来说,可以在程序运行时明白这些变量的实际命名到那儿去了,运行时大家可以再返回看这些名字! 2 开发时一般先设置界面,打开main.xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width=

Android开发中activity中传递数据的四种方式【收藏其他大佬的代码】

こ雲淡風輕ζ 提交于 2020-01-13 03:57:40
通过intent方式传递 (1)传递字符串等 发送端activity 接收端activity (2)传递一个对象法1(Serializable是java中自带的方法数据存在内存中) 传递activity中的代码,并且传递的对象必须接上Serializable这个接口如第二个图 接收activity代码 (3)传递一个对象法2(Serializable是android的方法数据存在运行内存中) 这个方法比较麻烦在需要用到的这个对象中必须写底层代码 public class Obj2 implements Parcelable{ private String name; private String age; public void setAge(String age) { this.age = age; } public String getAge() { return age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int describeContents() { return 0; } public static Parcelable.Creator<Obj2> CREATOR = new

Android小窗口模式,picture-in-picture(PIP画中画)的使用

…衆ロ難τιáo~ 提交于 2020-01-12 23:15:59
1.介绍 Android8.0的时候推出了画中画模式,可以让Activity缩小显示在其他Activity上方。当初我维护的项目本身自己实现了这个功能,Android加入画中画之后两个功能并行,互相交互的时候出了一大堆问题。现在几乎所有的视频软件都加入了这个功能。使用方法十分简单,但是需要处理好AudioFocus的问题。 2.参数介绍 在Android 8.0时候,只需要调用Activity的 enterPictureInPictureMode() ; 或者 enterPictureInPictureModeIfPossible() 即可 public boolean enterPictureInPictureMode ( @NonNull PictureInPictureParams params ) { try { if ( params == null ) { throw new IllegalArgumentException ( "Expected non-null picture-in-picture params" ) ; } return ActivityManagerNative . getDefault ( ) . enterPictureInPictureMode ( mToken , params ) ; } catch ( RemoteException

Android常见错误

梦想的初衷 提交于 2020-01-12 06:47:59
http://www.cnblogs.com/ok-lanyan/archive/2011/10/12/2208378.html 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

【android内存泄露】 WebView篇

五迷三道 提交于 2020-01-12 04:41:23
在咱的博客园app里 ,新闻的内容使用WebView展示的。在测试中,咱重复进入、退出某个新闻10多次,观察到 Objects一直在不断增长,反复触发GC,但是一直回收不了,占用的内存越来越高,于是警觉到这个WebView可能泄露内存了 如下: 在StackOverFlow上搜了下android webview memory leak(国内搜索结果质量太差,新手朋友推荐去这个网站搜答案) 里面有个回答大概的意思是: 我们在xml里面定义的WebView标签, 默认这个Activity就被这个webView作为Context参数所持有了 ,因此,当这个Activity结束了想释掉放自己时,但是任然被webView所引用,因此GC回收不了,造成内存泄露 解决之道就是 1: 使用容器包裹WebView <FrameLayout android:id="@+id/web_container" android:layout_width="fill_parent" android:layout_height="wrap_content"/> 2:手动创建WebView,使用ApplicationContext作为参数。在Ondestroy,调用容器的removeAllViews,同时调用webView的 destroy public class TestActivity extends

Intent显式实现一个界面切换到另一个界面(MainActivity中有个button1)跳转到(SecondActivity对应的button2)

青春壹個敷衍的年華 提交于 2020-01-11 23:42:17
先看看效果:点击button1 跳转视图 将创建好的项目中的 MainActivity类中写上: package com.example.reactest; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { // 向下兼容的Activity 其中AppCompatActivity是Activity的子类 Activity是Android系统提供的一个活动基类 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button_Panel = (Button)findViewById(R.id.buttonPanel)