前言:
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 + "秒后点击重发验证码"); } }
上面只是部分代码,仅供参考!