当前位置: 编程技术>移动开发
本页文章导读:
▪操作通报栏记录 操作通知栏记录
package com.example.android.apis.app;
import com.example.android.apis.R;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.cont.........
▪ 异步实施线程并可以得到返回值 异步执行线程并可以得到返回值
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * * @author Kaiwii Ho * Callable类就是一个有返回值的任务 * 对.........
▪ 施用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK 使用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK
使用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK。http://www.gifront.com/sdk/index.html “迅音”技术可.........
[1]操作通报栏记录
来源: 互联网 发布时间: 2014-02-18
操作通知栏记录
package com.example.android.apis.app;
import com.example.android.apis.R;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RemoteViews;
public class StatusBarNotifications extends Activity {
//用这个增加、去掉通知栏记录
private NotificationManager mNotificationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.status_bar_notifications);
Button button;
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//仅仅显示图片
button = (Button) findViewById(R.id.happy);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
setMood(R.drawable.stat_happy, R.string.status_bar_notifications_happy_message,
false);
}
});
//显示图片及文字
button = (Button) findViewById(R.id.happyMarquee);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
setMood(R.drawable.stat_happy, R.string.status_bar_notifications_happy_message,
true);
}
});
//显示图片及文字
button = (Button) findViewById(R.id.happyViews);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
setMoodView(R.drawable.stat_happy, R.string.status_bar_notifications_happy_message);
}
});
//图片及文字 与上面的有区别
button = (Button) findViewById(R.id.defaultSound);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
setDefault(Notification.DEFAULT_SOUND);
}
});
//清除通知栏里的图片及文字
button = (Button) findViewById(R.id.clear);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mNotificationManager.cancel(R.layout.status_bar_notifications);
}
});
}
private PendingIntent makeMoodIntent(int moodId) {
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, NotificationDisplay.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("moodimg", moodId),
PendingIntent.FLAG_UPDATE_CURRENT);
return contentIntent;
}
private void setMood(int moodId, int textId, boolean showTicker) {
CharSequence text = getText(textId);
String tickerText = showTicker ? getString(textId) : null;
Notification notification = new Notification(moodId, tickerText,
System.currentTimeMillis());
notification.setLatestEventInfo(this, getText(R.string.status_bar_notifications_mood_title),
text, makeMoodIntent(moodId));
mNotificationManager.notify(R.layout.status_bar_notifications, notification);
}
private void setMoodView(int moodId, int textId) {
Notification notif = new Notification();
notif.contentIntent = makeMoodIntent(moodId);
CharSequence text = getText(textId);
notif.tickerText = text;
notif.icon = moodId;
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.status_bar_balloon);
contentView.setTextViewText(R.id.text, text);
contentView.setImageViewResource(R.id.icon, moodId);
notif.contentView = contentView;
mNotificationManager.notify(R.layout.status_bar_notifications, notif);
}
private void setDefault(int defaults) {
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, StatusBarNotifications.class), 0);
CharSequence text = getText(R.string.status_bar_notifications_happy_message);
final Notification notification = new Notification(
R.drawable.stat_happy,
text,
System.currentTimeMillis());
notification.setLatestEventInfo(
this,
getText(R.string.status_bar_notifications_mood_title),
text,
contentIntent);
notification.defaults = defaults;
mNotificationManager.notify(
R.layout.status_bar_notifications,
notification);
}
}
[2] 异步实施线程并可以得到返回值
来源: 互联网 发布时间: 2014-02-18
异步执行线程并可以得到返回值
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
*
* @author Kaiwii Ho
* Callable类就是一个有返回值的任务
* 对于任务与Thread之间的关系,可以这样子理解:
* Callable类的实例就是一个锦囊妙计;而Thread就是执行这个锦囊妙计的过程
*
* FutureTask类(Future接口的一个实现)就是一个监视器:检测着被若干个异步线程操作的变量的一个类
*
* 代码演示了主线程如何通过使用Callable类和FutureTask类,实现:
* 主线程一边等待子线程的处理结果,一边完成自己的工作。
*
*考虑以下一个小黑工kaiwii的故事……
*/
public class TestFutureTask {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//准备一份工作给一个打工仔employee叫Kaiwii
Employee kaiwii=new Employee("kaiwii");
//新建一个监工头inspector
FutureTask<Double>inspector=new FutureTask<Double>(kaiwii);
//让kaiwii这个打工仔工作
System.out.println("老板发话,让kaiwii这个打工仔工作吧!");
new Thread(inspector).start();
System.out.println("老板开始数钱!");
//老板一边数钱,一边命令监工inspector监视Kaiwii工作;一旦kaiwii完成工作就拿来让他检查
while(!inspector.isDone()){
System.out.println("老板数钱中……");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//老板交监工inspector将kaiwii的结果呈上来以便他验收kaiwii计算出来的结果
try {
System.out.println("老板发现kaiwii的结果是:"+inspector.get());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//子线程
class Employee implements Callable<Double>{
String employee_name;
private void setEmployee_name(String employee_name) {
this.employee_name = employee_name;
}
public Employee(String employee_name) {
setEmployee_name(employee_name);
}
@Override
public Double call() throws Exception {
// TODO Auto-generated method stub
System.out.println("工人"+employee_name+"说:我开始工作了!!!!");
for(int i=1;i<=10;i++){
System.out.println("工人"+employee_name+" 第"+i+"次说:我在工作呢!!!!");
Thread.sleep(1000);
}
System.out.println("工人"+employee_name+"说:我搞好了!!!!");
return Math.random();
}
}
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
*
* @author Kaiwii Ho
* Callable类就是一个有返回值的任务
* 对于任务与Thread之间的关系,可以这样子理解:
* Callable类的实例就是一个锦囊妙计;而Thread就是执行这个锦囊妙计的过程
*
* FutureTask类(Future接口的一个实现)就是一个监视器:检测着被若干个异步线程操作的变量的一个类
*
* 代码演示了主线程如何通过使用Callable类和FutureTask类,实现:
* 主线程一边等待子线程的处理结果,一边完成自己的工作。
*
*考虑以下一个小黑工kaiwii的故事……
*/
public class TestFutureTask {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//准备一份工作给一个打工仔employee叫Kaiwii
Employee kaiwii=new Employee("kaiwii");
//新建一个监工头inspector
FutureTask<Double>inspector=new FutureTask<Double>(kaiwii);
//让kaiwii这个打工仔工作
System.out.println("老板发话,让kaiwii这个打工仔工作吧!");
new Thread(inspector).start();
System.out.println("老板开始数钱!");
//老板一边数钱,一边命令监工inspector监视Kaiwii工作;一旦kaiwii完成工作就拿来让他检查
while(!inspector.isDone()){
System.out.println("老板数钱中……");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//老板交监工inspector将kaiwii的结果呈上来以便他验收kaiwii计算出来的结果
try {
System.out.println("老板发现kaiwii的结果是:"+inspector.get());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//子线程
class Employee implements Callable<Double>{
String employee_name;
private void setEmployee_name(String employee_name) {
this.employee_name = employee_name;
}
public Employee(String employee_name) {
setEmployee_name(employee_name);
}
@Override
public Double call() throws Exception {
// TODO Auto-generated method stub
System.out.println("工人"+employee_name+"说:我开始工作了!!!!");
for(int i=1;i<=10;i++){
System.out.println("工人"+employee_name+" 第"+i+"次说:我在工作呢!!!!");
Thread.sleep(1000);
}
System.out.println("工人"+employee_name+"说:我搞好了!!!!");
return Math.random();
}
}
[3] 施用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK
来源: 互联网 发布时间: 2014-02-18
使用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK
使用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK。
http://www.gifront.com/sdk/index.html
“迅音”技术可广泛应用在各个应用场景中,示例如但不限于:
手机与手机之间建立会话,实现现场支付的收款、付款功能;
手机与收银PC(或平板电脑)之间建立会话,实现现场支付的收款、付款功能;
手机与PC之间建立会话,实现通过手机支付网购货款的功能;
手机与商户的签到PC(或签到模块)之间建立会话,实现精准签到功能;
手机与手机的蓝牙配对;
手机与手机之间建立会话,交换名片、照片、音乐等信息。
<embed src="http://player.youku.com/player.php/sid/XMjk4ODY5NDg4/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>
使用“迅音”超声波通讯技术,实现缤纷应用。API 已经开放,请下载SDK。
http://www.gifront.com/sdk/index.html
“迅音”技术可广泛应用在各个应用场景中,示例如但不限于:
手机与手机之间建立会话,实现现场支付的收款、付款功能;
手机与收银PC(或平板电脑)之间建立会话,实现现场支付的收款、付款功能;
手机与PC之间建立会话,实现通过手机支付网购货款的功能;
手机与商户的签到PC(或签到模块)之间建立会话,实现精准签到功能;
手机与手机的蓝牙配对;
手机与手机之间建立会话,交换名片、照片、音乐等信息。
<embed src="http://player.youku.com/player.php/sid/XMjk4ODY5NDg4/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>
最新技术文章: