当前位置: 编程技术>移动开发
本页文章导读:
▪操作通报栏记录 操作通知栏记录
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>
最新技术文章: