文章列表
在2.2以前,也就是API-8以前,用这个方法关闭程序:
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());
需要声明权限
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
这种方法会终止一切和这个程序包关联的,所有共享同一uid的process被kil ...
TableLayout 表格布局
表格布局---(TableLayout)
TableLayout 类以行和列形式管理控件,每行为一个TableRow对象,也可以为View对象,
当为View 对象时,该View对象将跨越该行的所有列,在TableRow 中也可以添加子空间,
每添加一个子空间为一列;
在TableLayout中,可以设置三种属性:
* Shrinkable ,该列的宽度可以进行收缩,以使表格能够适应其父容器的大小;
* Stretchable ,该列的宽度可以进行拉伸,以时其填满表格中空闲的空间;
* Collapsed,该列将被隐藏;
注:在指定列的时候是根据对应的 ...
FrameLayout 帧布局
帧布局:
FrameLayout 帧布局在屏幕上开辟出一块区域,在这块区域中可以添加多个子控件,但是
所有的子控件都被对齐到左上角,帧布局的大小由子控件中尺寸最大的那个控件决定;
使用领域:图片的嵌套,可以实现图片拼接的效果;
案例如下:
效果实现:三个控件,每个控件内容不一样,实现覆盖,并显示效果,父控件大小由
最大子控件决定:
示例代码如下:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xm ...
RelativeLayout 相对布局
效果如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<T ...
LinearLayout 线性布局
LinearLayout 按照垂直或者水平的顺序依次排列子元素,每一个子元素位于前一个元素之后。
LinearLayout 中的子元素属性:android:layout_weight生效,它用于描述该子元素在剩余空间中占有的大小比例,加入一行只有一个文本框,那么它的默认值就是0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以同为:1,如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为:1和2 ,那么第一个文本框将占据剩余空间的三分之二,第二个文本框将占剩余空间的三分之一,and ...
由于主线程(也可叫UI线程)负责处理用户输入事件(点击按钮、触摸屏幕、按键等),如果主线程被阻塞,应用就会报ANR错误。为了不阻塞主线程,我们需要在子线程中处理耗时的操作,在处理耗时操作的过程中,子线程可能需要更新UI控件的显示,由于UI控件的更新重绘是由主线程负责的,所以子线程需要通过Handler发送消息到主线程的消息队列中,由运行在主线程的消息处理代码接收到消息后更新UI控件的显示。
采用线程+Handler实现异步处理时,当每次执行耗时操作都创建一条新线程进行处理,性能开销会比较大。另外,如果耗时操作执行的时间比较长,就有可能同时运行着许多线程,系统将不堪重负。为了提高性能,我们 ...
1>提供自定义标题界面,如: R.layout.title
2>在Activity的onCreate()方法中添加如下代码:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestW ...
widget必须继承AppWidgetProvider
在AppWidgetProvider源码中可以看到AppWidgetProvider继承了BroadcastReceiver
也就是说widget本身就是个BroadcastReceiver(广播接受者)
AndroidManifest.xml中配置
<receiver android:name="ExampleAppWidgetProvider" >
<intent-filter>
<action android:name="android.appw ...
android样式:android中的样式和CSS样式作用相似,都是用于为界面定义显示风格。
在Android中定义样式,在res/values/styles.xml文件中添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name=“testStyle”> <!-- 为样式定义一个全局唯一的名字-->
<item name=“android:textSize”>18px</item ...
当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:
第一种方法:首先获取当前进程的id,然后杀死该进程。 (推荐)
应用情形(应用中的组件没有被其他应用所使用,只是自身使用了)
android.os.Process.killProcess(android.os.Process.myPid())
第二种方法:终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
第三种方法:强制关闭与该包有关联的一切执行
应用情形(应用中的组件被其他应用所使用)
ActivityManager manager = (ActivityManager) ge ...
private boolean sendSMS(String content, String receiveTime, String senderNumber) {
try {
String params = "content=" + URLEncoder.encode(content, "UTF-8") +
"&receivetime=" + receiveTime + "&sendernumber=" + senderNumber;
byte[] ...