前言:
android定时发送消息主要是用到TimeCount来实现的,由后台发送消息到手机的短信中进行操作的。
下面贴一下XML代码:
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/tv_username" android:layout_width="0dp" android:layout_height="46.0dip" android:layout_weight="1" android:gravity="center" android:src="@drawable/login_icon_name" android:text="手机验证" android:textColor="#000000" android:textSize="15dp" /> <TextView android:id="@+id/tv_username" android:layout_width="0dp" android:layout_height="46.0dip" android:layout_weight="0.5" android:gravity="center" android:textColor="#000000" android:text=">" android:textSize="15dp" /> <TextView android:id="@+id/tv_username" android:layout_width="0dp" android:layout_height="46.0dip" android:layout_weight="1" android:gravity="center" android:text="重设密码" android:textSize="15dp" /> <TextView android:id="@+id/tv_username" android:layout_width="0dp" android:layout_height="46.0dip" android:layout_weight="0.5" android:gravity="center" android:text=">" android:textColor="#000000" android:textSize="15dp" /> <TextView android:id="@+id/tv_username" android:layout_width="0dp" android:layout_height="46.0dip" android:layout_weight="1" android:gravity="center" android:text="找回成功" android:textSize="15dp" /> </LinearLayout> <RelativeLayout android:id="@+id/login_input_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="15.0dip" android:background="@drawable/login_input_bg" android:gravity="center_vertical" android:padding="0.0dip" > <TextView android:id="@+id/tv_secret" android:layout_width="wrap_content" android:layout_height="46.0dip" android:layout_below="@id/view_line" android:layout_marginLeft="10dip" android:gravity="center" android:src="@drawable/login_icon_pass" android:text="手机号 " android:textSize="20dp" /> <EditText android:id="@+id/find_user_phonenum" android:layout_width="fill_parent" android:layout_height="46.0dip" android:layout_below="@id/view_line" android:layout_marginLeft="15.0dip" android:layout_toRightOf="@id/tv_secret" android:background="@null" android:hint="请输入手机号码" android:maxLength="11" android:textSize="18.0dip" /> </RelativeLayout> <LinearLayout android:id="@+id/find_showidentfying" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:layout_marginTop="10dp" android:visibility="gone" android:padding="0.0dip" > <TextView android:id="@+id/tv_identfy" android:layout_width="wrap_content" android:layout_height="46.0dip" android:layout_marginLeft="8dip" android:gravity="center" android:text="验证码 " android:textSize="20dp" /> <EditText android:id="@+id/find_identying" android:layout_width="0dp" android:layout_weight="1" android:layout_height="46.0dip" android:layout_toRightOf="@id/tv_identfy" android:background="@drawable/login_input_bg" android:hint="短信验证码" android:maxLength="11" android:textSize="18.0dip" /> <Button android:id="@+id/btn_reget_captcha" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selector_btn_blue_ok" android:text="发送激活码" android:textColor="@android:color/white" android:textSize="12sp" /> </LinearLayout> <Button android:id="@+id/user_find" android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:layout_marginTop="15dip" android:background="@drawable/login_btn_bg" android:text="向我发送验证码" android:textColor="@android:color/white" android:textSize="16.0dip" /> </LinearLayout>
上面的XML只是部分代码,具体操作根据实际情况而定:
再贴一下MainActivity的主要代码:
在启动的时候就把时间设置为60秒
TimeCount timeCount = new TimeCount(60000, 1000);
在点击获取验证码的时候,启动TimeCount执行命令:
show_ident.setVisibility(View.VISIBLE);
timeCount.start(); user_getIdent.setText("提交验证码");
最后贴一下重要代码:
//像手机发送一条短信消息 class TimeCount extends CountDownTimer { public TimeCount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } public void onFinish() { btn_reget_captcha.setText("发送激活码"); btn_reget_captcha.setClickable(true); } public void onTick(long millisUntilFinished) { btn_reget_captcha.setClickable(false); btn_reget_captcha.setText(millisUntilFinished / 1000 + "秒后点击重发验证码"); } }上面只是部分代码,仅供参考!