Android server+BroadcastReceiver倒计时出错

问题描述

Android server+BroadcastReceiver倒计时出错

我用server+BroadcastReceiver做了个计时器,现在出现个问题,每次重新进入页面时候倒计时都会累加来减,就是原来是1s来减,第二次进入就是2s来。在 finish中写了取消广播的方法。求组大神
@Override
public void finish() {
super.finish();
if (isreceiver==true) {
Intent service = new Intent(ShareActivity.this, TimeService.class);
service.setAction(TimeService.CLOCK_SERVICE_ACTION);
service.putExtra("method", "stop");
super.sendBroadcast(service);
stopService(service);
unregisterReceiver(clockReceiver);
}
}
private void regReceiver(){
isreceiver = true;
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction(CLOCK_ACTION);
super.registerReceiver(clockReceiver, intentFilter);
}
/**
*广播接受者,接受来自ClockService(计时服务)的广播,ClockService每隔一秒
*钟发一次广播
*/
private BroadcastReceiver clockReceiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
changeTime();//改变TextView中的显示时间
}
};
private void changeTime(){
String stime="";
if(TIME==0){
if (ISOUT==true){
stime="上传截图";
mBtnshare.setEnabled(true);
}else {
stime="分享失败";
mBtnshare.setEnabled(false);
}
super.unregisterReceiver(clockReceiver);
Intent intent=new Intent();
intent.setAction(TimeService.CLOCK_SERVICE_ACTION);
intent.putExtra("method", "stop");
super.sendBroadcast(intent);
}else{
int hour=TIME/(1000*60*60);
int minute=TIME%(1000*60*60)/(60*1000);
int second=(TIME%(1000*60*60))%(60*1000)/1000;
String shour=""+hour,sminute=""+minute,ssecond=""+second;
if(hour<=9){
shour="0"+hour;
}
if(minute<=9){
sminute="0"+minute;
}
if (second<=9){
ssecond="0"+second;
}
if (ISOUT==true) {
stime = shour + ":" + sminute + ":" + ssecond+"后上传截图";
mBtnshare.setEnabled(false);
}else {
mBtnshare.setEnabled(true);
stime = shour + ":" + sminute + ":" + ssecond+"内可再次分享";
}
}
mBtnshare.setText(stime);
}

时间: 2024-09-24 01:57:30

Android server+BroadcastReceiver倒计时出错的相关文章

SQL Server远程连接出错的解决方法

SQL Server远程连接出错?不要紧,下面就为您分析SQL Server远程连接出错的原因,并给出解决问题的方法,希望对您学习SQL Server远程连接方面能有所帮助. 在进行sqlserver复制的时候,我的情况是这样的,我在本地的management studio里连接了一个远程的sqlserver数据库服务器,用的不是默认端口号,也没有开browser服务,而且是命名实例,非默认实例,所以连接的服务器名得用abcabcserver,port这样的模式来连,然后配置它的复制分发(包括新

Android:广播BroadcastReceiver

 什么是BroadcastReceiver? BroadcastReceiver,广播接收者,它是一个系统全局的监听器,用于监听系统全局的Broadcast消息,所以它可以很方便的进行系统组件之间的通信. BroadcastReceiver虽然是一个监听器,但是它和之前用到的OnXxxListener不同,那些只是程序级别的监听器,运行在指定程序的所在进程中,当程序退出的时候,OnXxxListener监听器也就随之关闭了,但是BroadcastReceiver属于系统级的监听器,它拥有自己的进

android采用BroadcastReceiver实现定时器

package net.blogjava.mobile; import java.util.Calendar; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.med

windows2012-大神求救!~windows Server 2012R2服务器出错~

问题描述 大神求救!-windows Server 2012R2服务器出错- 昨天配置服务器IIS的时候不小心把里面的所有角色功能都删除了.重启后桌面什么都没有了...只能打开任务管理器了救命.. 解决方案 把重要的设置备份下,然后重装系统.

android开发-android自定义标题栏总是出错

问题描述 android自定义标题栏总是出错 采用网上说的自定义标题栏的方法: requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar); 只要指定了Window.FEATURE_CUSTOM_TITLE则会在setContentView出错,

编码-android studio中AndroidManifest出错

问题描述 android studio中AndroidManifest出错 Manifest.xml源码如下: <?xml version="1.0" encoding="utf-8"?> package="com.example.administrator.myapplication" > <uses-permission android:name="android.permission.INTERNET&qu

sql server 2008r2 安装出错error CS0014:未找到mscorpe.dll

问题描述 sql server 2008r2 安装出错error CS0014:未找到mscorpe.dll error CS0014:未找到mscorpe.dll 错误代码0×84B10001 文件mscorpe.dll文件是存在的,为什么还提示找不到... 解决方案 安装SQL Server 2008 R2挂掉的可能原因SQL Server 2008 R2 安装SQL Server 2008 R2 安装出错:Could not open key 解决方案二: 这种情况可能是因为你的WM6的S

Android微信分享网络图片出错,求大神看看

问题描述 Android微信分享网络图片出错,求大神看看 学习了微信开发,发现分享文字以及本地图片都能成功,分享网络音频url链接也能成功, 但是就是分享网络图片失败(闪一下就没反映了),图片的网址是我在网上随便找的,大小只有16k,而且我在代码中通过: ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 10, outputSt

android studio启动时出错

问题描述 android studio启动时出错 如题,刚准备打开AndroidStudio就出现问题了,好郁闷.. 解决方案 问题解决了,电脑重启后一切正常! 解决方案二: 第一次启动前,要先在它的一个文件中加上一句话.加个就可以了 这是第一次加载,它会自动检测好像,加个就没了,直接进去.具体的,时间久了,忘记了,你可以百度一下 解决方案三: 上面报的错是 没有锁定系统文件夹 你查查是什么问题 解决方案四: 如何在android studio 1.0 启动时设置代理android studio