Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
superhandleMessage(msg);
xxsetText(IntegerparseInt(xxgetText()-1);
}
};只需要在service里d出一个全局对话框即可,以下是示例代码:
1创建对象框
AlertDialogBuilder builder = new Builder(context);
buildersetTitle("请输入"); //设置对话框标题
buildersetIcon(androidRdrawablebtn_star); //设置对话框标题前的图标
2创建EditText输入框
final EditText edit = new EditText(context);
3将输入框赋值给Dialog,并增加确定取消按键
buildersetView(edit);
buildersetPositiveButton("确认", new DialogInterfaceOnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastmakeText(context, "你输入的是: " + editgetText()toString(), ToastLENGTH_SHORT)show();
}
});
buildersetNegativeButton("取消", new DialogInterfaceOnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastmakeText(context, "你点了取消", ToastLENGTH_SHORT)show();
}
});
4设置常用api,并showd出
buildersetCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = buildercreate(); //创建对话框
dialogsetCanceledOnTouchOutside(true); //设置d出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialogshow();我知道的有三种方法;
方法一:可以通过android自带的Handler机制,里面有new Handler()postDelayed(new Runnable(){
@Override
public void run() {
//延迟的时间到了执行
}
},延迟的时间);
方法二:可以通过java里面的线程来写,new Thread()sleep(延迟时间);时间到了会继续执行;
方法三:java定时器(有很多方法)例如:
Timer timer = new Timer();
timerschedule(new TimerTask() {
public void run() {
Systemoutprintln("-------设定要指定任务--------");
}
}, long delay,long period);
delay延迟的时间,period为多久执行一次;
个人推荐用方法一,毕竟安卓系统自带的,并且安卓不适合加定时器,如果处理不当一直执行的话,要么卡,要么程序崩溃。还有发布版本可能审核不通过。首先写几点感悟:
闹钟类,目前只用过 AlarmManagerRTC_WAKEUP 类型,这个是精确定时,很多博客都提到过,不了解的可以自己查查。然后 action 用来启动服务或者广播, alarmId 就是 requestCode ,用来区别不同的闹钟。该工具类不仅仅可以用来定时通知,只要稍加改动,定时广播、定时任务、定时d窗都是可以做的。
服务和广播配置一个就可以了,目前我才有的是服务的配置方法
服务的配置方法:
广播的配置方法:
由于查看的资料太多了,所以就不一一列举了,然后提供一个测试方法,可以在 MainActivity 的 OnCreate 方法中调用:1 从Service继承一个类。
2 创建startService()方法。
3 创建endService()方法 重载onCreate方法和onDestroy方法,并在这两个方法里面来调用startService以及endService。
4 在startService中,通过getSystemService方法获取ContextLOCATION_SERVICE。
5 基于LocationListener实现一个新类。默认将重载四个方法onLocationChanged、onProviderDisabled、onProviderEnabled、onStatusChanged。对于onLocationChanged方法是我们更新最新的GPS数据的方法。一般我们的 *** 作都只需要在这里进行处理。
6 调用LocationManager的requestLocationUpdates方法,来定期触发获取GPS数据即可。在onLocationChanged函数里面可以实现我们对得到的经纬度的最终 *** 作。
7 最后在我们的Activity里面通过按钮来启动Service,停止Service。
示意代码如下:
package comoffbyegpsservice;
import androidappService;
import androidcontentContext;
import androidcontentIntent;
import androidlocationLocationListener;
import androidlocationLocationManager;
import androidosBinder;
import androidosIBinder;
import androidutilLog;
public class GPSService extends Service {
// 2000ms
private static final long minTime = 2000;
// 最小变更距离10m
private static final float minDistance = 10;
String tag = thistoString();
private LocationManager locationManager;
private LocationListener locationListener;
private final IBinder mBinder = new GPSServiceBinder();
public void startService() {
locationManager = (LocationManager) getSystemService(ContextLOCATION_SERVICE);
locationListener = new GPSServiceListener();
locationManagerrequestLocationUpdates(LocationManagerGPS_PROVIDER, minTime, minDistance,
locationListener);
}
public void endService() {
if (locationManager != null && locationListener != null) {
locationManagerremoveUpdates(locationListener);
}
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return mBinder;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)