【发布时间】:2018-08-20 08:29:54
【问题描述】:
我正在尝试在计时器启动时启动一项活动,并在计时器在 10 秒后结束时再次启动当前活动。但是 5 秒后,当前活动再次开始,并且在计时器结束后调用 onFinish() 方法。 我没有在当前活动中的任何其他位置或在计时器启动时正在启动的活动中启动 crrent 活动。 请帮助我理解这一点。谢谢
timer= new CountDownTimer (time, 1000) {
public void onTick(long millisUntilFinished) {
switch (activity_state){
case 1:
//this toast is being used to display time
Toast.makeText(getApplicationContext(),String.valueOf(millisUntilFinished/1000),Toast.LENGTH_SHORT).show();
if(millisUntilFinished==time){
finish();
startActivity(new Intent(SettingsActivity_2.this,OneYearActivity.class));}
break;
case 2:
if(millisUntilFinished==time)
{finish();startActivity(new Intent(SettingsActivity_2.this,TwoYearActivity.class));}
break;
case 3:
if(millisUntilFinished==time)
{finish();startActivity(new Intent(SettingsActivity_2.this,ThreeYearActivity.class));}
break;
case 4:
if(millisUntilFinished==time)
{finish();startActivity(new Intent(SettingsActivity_2.this,AllYearActivity.class));}
break;
}
}
public void onFinish() {
Toast.makeText(getApplicationContext(),"OnFinishCalled",Toast.LENGTH_SHORT).show();
startActivity ( new Intent ( SettingsActivity_2.this,SettingsActivity_2.class ));
}
}.start();
OneYearActivity.java 此活动从第一个案例开始。
public class OneYearActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one_year_kid);
initializing_components();
setSupportActionBar(toolbar);
}}
我将从this main screen 转到this password screen,命名为SettingActivity_2,如果密码正确,应该转到命名为OneYearActivity 的this activity 及之后10 秒后,SettingsActivity_2 应该会重新开始。但 5 秒后,SettingsActivity_2 启动。
添加处理程序后启动新活动 我的处理程序代码
handler=new Handler();
r=new Runnable() {
@Override
public void run() {
finish();
}
};
从 OneYearActivity 启动新 Activity 以播放视频
learning_songs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(OneYearActivity.this,PlayVideo.class);
intent.putExtra("video_Id","vkRDOcma9Qk");
startActivityForResult(intent,1);
}
});
从 OneYearActivity 开始播放 Youtube 视频的活动
public class PlayVideo extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_video);
YouTubePlayerView youtubePlayerView = findViewById(R.id.youtube_player_view);
getLifecycle().addObserver(youtubePlayerView);
VideoPlayer videoPlayer=new VideoPlayer();
Intent intent=getIntent();
String video_Id=intent.getStringExtra("video_Id");
videoPlayer.play_Video(youtubePlayerView,video_Id);
}
我想做什么
- 开始设置2
- 点击开始 OneYearActivity 显示 10 秒
- 如果用户按下 learning_songs,它会播放新的活动,并且应该在前一个活动中启动的计时器结束时结束
我得到了什么
- 开始设置2
- 点击开始显示 10 秒的 OneYearActivity
- 如果用户按下 learning_songs,它会播放新的活动,并且随着计时器的结束,它不会完成 播放视频 活动
【问题讨论】: