`
文章列表
1、Activity和Task task就好像是能包含很多activity的栈。 默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个activity压入第一个activity所在的task栈。当用户按下返回键时,第二个activity从栈中弹出,第一个activity又在当前屏幕显示。这样,从用户角度来看,这两个activity就好像是属于同一个应用程序的,即使第二个activity是属于另外一个应用程序的。当然,这是指默认情况下。 task栈包含的是activity的对象。如果一个activity有多个实例在运行,那么栈 ...
  按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .   解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……把BACK事件直接自己给吞了 :如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给 ...
此属性意思是此视图是否显示,例如RelativeLayout中android:visibility="gone" 其有三个属性:visible显示;invisible显示黑背景条;gone不显示(不占空间) 在类中,可以设置其显示与否,setVisibility(View.GONE);不显示 setVisibility(View.VISIBLE);显示    xml中是visible代码中是visibility   
  我们在写Android程序的时候,免不了要使用ListView,也免不了要使用ContextMenu,但是如何将其结合起来呢。比如Contacts程序是如何删除练习人的呢。 添加或则删除一个tem有不同的方式,添加Item可以使用ListView自身带的add()方法即可,但是在ContextMenu中删除这个Item还是有些麻烦的。 下面是一个小例子: 1、可以在EditText中输入内容后动态添加Item 2、可以在ContextMenu中添加(但只能添加同一个Item) 3、可以点击Item直接删除Item 4、可以长按Item后弹出ContextMenu来删除Item ...
目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A 先看 A.java 的相关代码 //-- A.java --// /*  * 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果  */ //启动B Intent bintent = new Intent(A.this, B.class); //设置 bintent的Bundle的一个值 String bsay = "Hello, this is B speaking"; bintent. ...
假设:我这里有两个Activity:A和B,从A中向B中传递数据的时候采用的是Bundle封装数据,然后从A中跳转到B中,当B有需求将数据封装起来回传给A并跳转回A。那么A中接收数据时还要先判断Bundle是否为空,因为第一次访问A的时候(即B还没有回传的时候),Bundle是为空的,这样显然是比较麻烦的,不明智的做法。 还好startActivityForResult来做跳转给了我们更好的解决办法。 1.跳转的时候不是采用startActivity(intent) 这个方法,而是startActivityForResult(intent, 0)。     Intent ...
写一个自定义的Adapter用来绑定ListView,在重写getView的时候发现网上参考代码有用到setTag()和getTag()两个函数,百度找不到答案,google一搜就知道了,:P   View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。 可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。 import android.app.Activity; import android.os.Bu ...

Runnable 和 Thread

我们都知道创建线程有两个方法:  一是通过继承Thread类;二是向Thread类传递一个Runnable对象. 比如说一个售票站有四个窗口卖票,我们要设计四个线程 第一种方法:传递一个Runnable对象. public class MyThread { public static void main(String[] args) { TestThread tt = new TestThread(); new Thread(tt).start(); new Thread(tt).start(); new Thread(tt).start(); ...
1、其实上面的方法,直接使用handler.post(updateThread),然后线程updateThread直接调用run()方法,并没有调用start()方法, 所以并没有产生新的线程,都是在主线程里面运行的 2、要产生新的线程,可以用如下方法:   //生成一个HandlerThread对象,实现了使用Looper来处理消息队列的功能,这个类由Android应用程序框架提供 HandlerThread handlerThread = new HandlerThread("handler_thread"); //必须先调用该类的start(); hand ...
startService:正常调用:onCreate->onStart取消绑定:onDestroy如果调用者自己直接退出而没有调用stopService,则Service会一直在后台运行,直到下次调用者再启动起来,并明确调用stopServicebindService正常调用:onCreate->onBind取消绑定:onUnbind->onDestroy先startService,再bindServiceonCreate->onStart->onBind(onCreate只调用一次)先stopService 再unbindService点stopService不起 ...
很多情况下,一些与用户很少需要产生交互的应用程序,我们一般让它们在后台运行就行了,而且在它们运行期间我们仍然能运行其他的应用。为了处理这种后台进程,Android引入了Service的概念。Service在Android中是一种长生命周期的组件,它不实现任何用户界面。最常见的例子如:媒体播放器程序,它可以在转到后台运行的时候仍然能保持播放歌曲;或者如文件下载程序,它可以在后台执行文件的下载。让我们来看下如何创建Service:创建一个ServiceAndroid中已经定义了一个 ‘Service’类,所有其他的Service都继承于该类。Service类中定义了一系列的生命周期相关的方法,如: ...
在Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle)。但其实,它们对于debug也很有帮助。本文将介绍如何利用匿名类来简化你的debug。   我们该如何调试那些非自己源码的方法调用呢?比方说,对Jbutton.setEnable()的 ...
关于java的new对象问题   2011-11-8 21:10 提问者:hwhzw17 | 悬赏分:20 | 浏览次数:183次 public class Circle { private Point center; private int r; public Circle(){} public Circle(Point center, int r){ this(center.x, center.y, r); } pub ...
  很多网友来函表示对Android AIDL不是很理解,这里Android123准备了一个简单的例子,帮助大家了解Android上比较强大的远程服务设计吧。   一、为什么要使用AIDL,他的优势有哪些呢?   AIDL服务更像是 一个Server,可以为多个应用提供服务。由于使用了IDL这样类似COM组件或者说中间语言的设计,可以让后续的开发者无需了解内部,根据暴漏的接口实现相关的操作,AIDL可以工作在独立的进程中。  二、学习AIDL服务需要有哪些前置知识?   作为Android上服务的扩展,首先你要了解Android Service模型,Android Serivice我 ...
在AIDL中让Service调用Activity的方法代码:首先建立一个ICallback.aidl文件,作为Activity中的回调方法   1 package com.zhang.test.service;2 3 interface
Global site tag (gtag.js) - Google Analytics