我创建了一个从onFinish()
扩展的类,它有一个方法timer
,在activity
到期时调用。
有6个活动,当计时器到期时,用户可以在任何CounterTimer
中,所以Finish()
当Alert Message
方法调用时,我需要向Login
显示Intent class
用户,我需要将用户重定向到Normal Class
页面。
由于我无法在context
中拨打context
,因此我无法通过Intent
,因为用户可以参加任何活动,因此事情变得令人困惑。
我写过以下代码,但它没有帮助。
我在这里使用了上下文,但是在将public class CounterClass extends CountDownTimer implements ITMServiceEvent {
@Override
public void onFinish() {
if(sql_code.equalsIgnoreCase("0")) {
String resultCode = command1.getString("result");
context.startActivity(context.getApplicationContext(), MainActivity.class);
}
传递给CounterClass counterClass= new CounterClass(180000,1000);
counterClass.setTextView(tvTimer);
counterClass.start();
{{1}}
在片段
中的向导开始时调用计时器{{1}}
答案 0 :(得分:1)
您的问题有两个部分,首先是如何清理活动堆栈并在其上启动一个新的活动,我想这将是您的案例中的LoginActivity。
要执行此操作,您需要在启动时设置LoginActivity Intent的标志,
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
第二部分是,您希望能够在向用户显示对话框后完成当前活动。我假设您的Timer是一个服务类,它在后台运行。告诉你当前活动时间到了!是发送广播消息。最好LocalBroadcastManager可以帮助您。您可以拥有一个BaseActivity类,其中所有6个活动都可以从中扩展,您可以在LocalBroadcastManager
类中注册/取消注册BaseActivity
这些活动(在onResume
中注册,并且取消注册onPause
)。注册后,您只需要实现并处理onReceive
方法,您可以在该方法中显示对话框并在完成当前对话后启动LoginActivity
。