明天要考试了,速速总结如下
1、Activity的启动模式
standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。)
singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
singleTask:如果某个Activity是singleTask模式,那么Task栈中将会只有一个该Activity的实例。例如:现在栈的情况为:A B C D。B的Launch mode为singleTask,此时D通过Intent跳转到B,则栈的情况变成了:A B。而C和D被弹出销毁了,也就是说位于B之上的实例都被销毁了
singleInstance:将Activity压入一个新建的任务栈中。例如:Task栈1的情况为:A B C。C通过Intent跳转到D,而D的Launch mode为singleInstance,则将会新建一个Task栈2。此时Task栈1的情况还是为:A B C。Task栈2的情况为:D。此时屏幕界面显示D的内容,如果这时D又通过Intent跳转到D,则Task栈2中也不会新建一个D的实例,所以两个栈的情况也不会变化。而如果D跳转到C,则栈1的情况变成了:A B C C,因为C的Launch mode为standard,此时如果再按返回键,则栈1变成:A B C。也就是说现在界面还显示C的内容,不是D。
2、Activity的五大布局
FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)
3、Toast
toast.makeText(this,"提示信息",o).show();
4、TextView
textView---->HTML.fromHTML();可通过HTML代码显示文本格式。
5、适配器
ArrayAdapter、SimpleAdapter
6、从resources中获取的图片只能设置不能修改
7、Canvas、Point、Bitmap、Watrix(矩阵类,对图片做变换)、BitmapDrawable
8、ImageSwitch实现ViewFactory接口
6、什么是ANR?
Application not response
发生anr的情况如下:
A、主线程 (“事件处理线程” / “UI线程”) 在5秒内没有响应输入事件
a、在主线程内进行网络操作
b、在主线程内进行慢的io操作
B、BroadcastReceiver 没有在10秒内完成返回
怎么解决anr?
第一种解决的方法如下:(子线程可以解决anr但是不能更新UI)
A、new出一个新的线程进行耗时操作,数据请求
B、耗时操作或者数据请求完成时,使用handler.sendMessage方法
C、handler的handle()方法中更新UI
下面是这样的一个例子:
public class MainActivity extends Activity implements OnClickListener { private Button bget; private ImageView imageView; Handler handler = new Handler() { public void handleMessage(Message msg) { Bitmap bmp = (Bitmap) msg.obj; imageView.setImageBitmap(bmp); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bget = (Button) findViewById(R.id.bget); imageView = (ImageView) findViewById(R.id.imageview); bget.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub new Thread() { public void run() { try { URL url = new URL("http://10.0.2.2:9999/testdemo/images/pre4.jpg"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setDoOutput(false); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode() ==200) { InputStream inputStream = conn.getInputStream(); Bitmap bmp = BitmapFactory.decodeStream(inputStream); Message message = new Message(); message.obj = bmp; handler.sendMessage(message); } } catch (Exception e) { // TODO: handle exception } } }.start(); } }
第二种可以使用异步处理类AsyncTask
在安卓中经常用到要和网络进行交互的,下面是和网络交互的一个例子
public class MainActivity extends Activity implements OnClickListener { private Button bget; private ImageView imageView; Handler handler = new Handler() { public void handleMessage(Message msg) { Bitmap bmp = (Bitmap) msg.obj; imageView.setImageBitmap(bmp); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bget = (Button) findViewById(R.id.bget); imageView = (ImageView) findViewById(R.id.imageview); bget.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub MyAsyncTask myAsyncTask = new MyAsyncTask(); myAsyncTask.execute("http://10.0.2.2:9999/testdemo/images/pre4.jpg"); //"http://10.0.2.2:9999/testdemo/images/pre4.jpg" } // 第一个参数就是一个字符串,就是网络上的url地址 // 第二个参数是 Integer,标明进度... // 第三个参数指的是返回的值 class MyAsyncTask extends AsyncTask<String, Integer, Bitmap> { // 任务执行前调用的方法,它是在主线程中 @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); } @Override protected void onProgressUpdate(Integer... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); } // 后台执行的任务,它是在子线程中...这个的方法的返回参数,会 // 做为onPostExecute()中的传递参数. @Override protected Bitmap doInBackground(String... params) { // TODO Auto-generated method stub String urlstr = params[0]; try { URL url = new URL(urlstr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setDoOutput(false); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode() ==200) { InputStream inputStream = conn.getInputStream(); Bitmap bmp = BitmapFactory.decodeStream(inputStream); return bmp; } } catch (Exception e) { // TODO: handle exception } return null; } //任务执行完毕,调用的方法.它也是在主线程中. @Override protected void onPostExecute(Bitmap result) { // TODO Auto-generated method stub // super.onPostExecute(result); imageView.setImageBitmap(result); } } }
相关推荐
Android知识总结: Android是基于Linux内核的开源移动操作系统,主要用于智能手机和平板电脑。学习Android开发,你需要掌握以下几个核心概念: 1. Android SDK:包含了开发Android应用所需的工具和库。 2. Activity...
Android知识系统总结是一个涵盖广泛的主题,它涉及到Android操作系统的核心概念、开发环境的搭建、应用程序的结构、用户界面设计、数据存储、网络通信、多线程处理、性能优化等多个方面。以下是对这些关键知识点的...
### Android基础知识总结与面试要点详解 #### 一、Android架构概览 Android系统采用分层设计,主要包括五层:应用程序层、应用程序框架层、库和Android运行时、Linux内核。其中,应用程序层包含了预装的应用如电话...
在Android平台上,音频处理涉及到多个层次的组件,包括应用程序API层和系统服务层。本文将深入探讨Android音频框架,特别是AudioTrack、AudioRecord、AudioSystem、AudioPolicyService、AudioFlinger以及Audio HAL,...
以下是对"Android入门到精通知识总结.pdf"中提及的一些重要概念的详细说明: ### 1. **Activity的生命周期** Activity是Android应用中的核心组件,它代表了用户界面的一个屏幕。Activity有七个主要状态,包括`...
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。...
文件是chm格式的,类似于Java的帮助文档,是我从开始接触Android,一点一滴总结Android的技术知识,总的来说是适合初学者来学习的,而且这个chm文档搜索功能相当强大,搜索某个关键词就可以搜索到对应的知识
android linux 基础知识总结
Android知识大总结 Android入门到精通 Android学习笔记 AndroidAndroid应用开发揭秘Android学习指导 Android新手入门 希望对大家学习提供帮助 很有用处的
这个“Android系统知识总结+培训课程+笔记”包含了一系列深入学习Android开发的重要资料,涵盖了从基础到高级的各种主题,适合Android开发者或者对Android系统有兴趣的学习者使用。这份资料可能与在青岛巴黎春天广场...
Android知识系统总结+最佳学习线路图+实例+全程开发笔记Android知识系统总结+最佳学习线路图+实例+全程开发笔记
Android知识大总结 Android入门到精通 Android学习笔记 AndroidAndroid应用开发揭秘Android学习指导 Android新手入门 Android开发实例集锦 希望对大家学习提供帮助 很有用处的
《Android基础知识点总结》 Android开发是移动应用领域的重要组成部分,掌握其基础知识是成为合格Android开发者的第一步。本文将从快捷键使用、环境配置、UI界面设计等方面进行深入阐述。 一、快捷键操作 快捷键...
本文将深入探讨Android开发中的关键知识点,包括平台概述、开发环境搭建、应用程序结构、Activity组件的使用以及常见问题。 一、Android平台概述 Android平台由多个层次组成,包括Linux内核、硬件抽象层、系统库、...
### Android基本知识点总结 在移动应用开发领域,Android操作系统占据着举足轻重的地位。为了更好地理解和掌握Android应用开发的基本原理和技术,以下是对Android基础知识的一个系统性总结。 #### 一、Android四大...
在Android开发中,掌握一些关键知识点对于提升应用质量和用户体验至关重要。以下是一些核心要点的详细说明: 1. **获取标题栏和状态栏高度** - 状态栏高度获取:通过`getWindow().getDecorView()....
整理了本人平时所积累整理的Android知识体系及部分文档