1.Activity android页面必须继承的一个类,相当于servlet。
重写函数:Oncreate入口函数
2.Intent 一个请求。Activity之间传唤时使用。可以绑定数据传输。
3.Toast.markText(thisActivity.this,"内容",Toast.LONG).show(); 所属Activity,内容,模式 提示小框
4.Handle类 Handler handler = new Handler();
handler.post(Runnable);添加一个线程 , handler.removeCallbacks(Runnale);删除一个线程
handler.postDelayed(Runnable,3000); 延迟加入
两个堆栈一个是线程一个是消息
消息队列Message msg = handler.obtainMessage();
msg.arg1 = 1;msg对象有两个参数arg1和arg2,这两个变量传递消息节省系统性能
handler.sendMessage(msg);又将msg对象加入消息队列中
5.progressbar:进度条
setVisibility(View.VISIBLE);设置成可见状态
在AppWidget的update中注册一个监听 指定转向 intent = new Intent(context,TargetActivity.class); pendingIntent = PendingIntent.getActivity(content,0,intent,0); 获取远程view对象 remoteViews=new RemoteViews(context.getPackageName(),R.layout.exp) 为远程view的button绑定一个监听器 remoteViews.setOnClickPendingIntent(R.id.widgetBt,pendingIntent); 用remoteViews更新appWidgetIds[i]这个桌面控件 appWidgetManager.updateAppWidget(appWidgetIds[i],remoteViews);
有些时候需要做类似于电话,短信未读情况,显示在屏幕上方时。就要用到notificationManager通知。
下面有个列子:
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.icon, "收到任务", System.currentTimeMillis()); //通知内容 RemoteViews remoteViews=new RemoteViews(getPackageName(), R.layout.notification); remoteViews.setImageViewResource(R.id.image, R.drawable.user); remoteViews.setTextViewText(R.id.text, "content"); notification.contentView=remoteViews; //点击进入详细内容 notification.contentIntent=PendingIntent.getActivity( LaunchNotificationActivity.this, 0,new Intent(LaunchNotificationActivity.this,ShowContent.class), 0); //设置铃音 notification.flags|=Notification.FLAG_AUTO_CANCEL; notification.defaults |= Notification.DEFAULT_SOUND; manager.notify(1, notification);
AsyncTask
java.lang.Object
↳android.os.AsyncTask<Params, Progress, Result>
概要
AsyncTask可以方便适当地使用UI线程。他允许执行后台操作并且可以直接在UI线程上发布结果,而不需要操作线程或handler。
一个异步任务(asynchronous task)由一个后台运行的计算(computation)来定义,他的结果将在UI线程上发布。
一个异步任务(asynchronous task)由3个泛化类型(Params,Progress,Result)和4个步骤(begin, doInBackground, processProgress, end)来定义说明。
异步任务使用如下3种类型:
1. Params,传递给任务的参数类型。
2. Progress,后台计算执行过程中,进步单位(progress units)的类型。(就是后台程序已经执行了百分之几了。)
3. Result, 后台执行返回的结果的类型。
AsyncTask并不总是需要使用上面的全部3种类型。标识不使用的类型很简单,只需要使用Void类型即可。
AsyncTask的4个步骤
一个异步任务需要执行下面4个步骤
1. onPreExecute(), 该步骤在任务被执行之后立即由UI线程调用。
这个步骤通常用来建立任务,在用户接口(UI)上显示进度条。
2. doInBackground(Params...), 该步骤由后台线程在onPreExecute()方法执行结束后立即调用。该步骤通常被用来执行耗时的后台计算。计算的结果必须由该步骤返回,并被传递到 最后一个步骤中。该步骤也可以使用publishProgress(Progress...)来发布一个或多个进度单位(units of progress)。这些值将会在onProgressUpdate(Progress...)步骤中被发布到UI线程。
3. onProgressUpdate(Progress...), 该步骤由UI线程在publishProgress(Progress...)方法调用完后被调用。
并未定义该方法执行的时机。该方法在后台进程计算仍在执行的时候,在UI上显示任何形式的进度。一般用于动态地显示一个进度条或者在文本框中显示log。
4. onPostExecute(Result), 由UI进程在后台计算结束后调用。后台计算的结果会被作为参数传递给这一步骤。
线程规则
为了能使该类正常执行,需要遵循下列规则:
- Task的实例必须在UI线程中被调用。
- execute(Params...)必须在UI线程中调用。
- 不要手动调用onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...)。
- Task只能被执行一次,如果想第二次执行会抛出异常。