###制限時間付きのアプリを作りたい
現在、制限時間付きのゲームを作っています。カウントダウンしてその時間を表示させ、制限時間になると次の画面に遷移するというものです。
http://hakoniwadesign.com/?p=10770
http://hakoniwadesign.com/?p=10775
http://hakoniwadesign.com/?p=10833
上記のサイトを参考に制作しました。
###発生している問題→アプリを再度開くと、カウントダウンが止まってしまう(原因がわからない)
Android StudioでRunボタンを押し実機でアプリを立ち上げると、正常に作動しカウントダウンが始まります。0秒になると次の画面へ遷移します。しかし、カウントダウンの途中でホームボタンを押し、履歴から再度アプリを開くと時間が止まっており、それ以上カウントダウンしなくなってしまいます。また、その状態からさらにホームボタンを押すと強制終了してしまいます。
###該当のソースコード
ソースコードが長く、質問が投稿できないので、制限時間の部分だけをピックアップさせていただきました。
MainActivity.java
強制終了した時、onPause()のcountDownTimer.cancel()の部分でエラーが出ていました。
java
1 protected void onPause(){ 2 super.onPause(); 3 countDownTimer.cancel(); 4 countDownTimer = null; 5 } 6 7 //時間制限を設ける 8 protected void onResume(final int back_number) { 9 super.onResume(); 10 countDownTimer = new CountDownTimer(alltime,100) { 11 @Override 12 public void onTick(long millisUntilFinished) { 13 alltime = millisUntilFinished; 14 int time = (int)millisUntilFinished/1000; 15 ((TextView)findViewById(R.id.tv)).setText("あと" + time + "秒"); 16 } 17 18 @Override 19 public void onFinish() { 20 //画面遷移 21 Intent intent = new Intent(getApplication(), Main2Activity.class); 22 intent.putExtra("back_number",back_number); 23 intent.putExtra("image_syugou",imageDrawable_back); 24 startActivity(intent); 25 } 26 }.start(); 27 }
MainActivity2.java
java
1public class Main2Activity extends AppCompatActivity { 2 3 RadioGroup radioGroup_; 4 String[] s = {"フクロウ","イヌ","イルカ", "ジャガー","カモメ","シロクマ", "ネコ","オランウータン","パンダ","ペンギン","ライオン","リス", "サル","シカ","チーター", "ウマ","ウサギ","クジラ","ウシ","ゾウ"}; 5 int RadioButtonId[] = {R.id.RadioButton1,R.id.RadioButton2,R.id.RadioButton3,R.id.RadioButton4}; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main2); 11 12 radioGroup_ = (RadioGroup)findViewById(R.id.RadioGroup); 13 14 Intent intent = getIntent(); 15 16 //正解の選択肢のテキスト 17 final int true_data = intent.getIntExtra("back_number",0); 18 final int imageDrawable_back[] = intent.getIntArrayExtra("image_syugou"); 19 20 } 21}
AndroidManifest.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.students.pelmanism3"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/AppTheme"> 12 <activity android:name=".Main0Activity"> 13 <intent-filter> 14 <action android:name="android.intent.action.MAIN" /> 15 16 <category android:name="android.intent.category.LAUNCHER" /> 17 </intent-filter> 18 </activity> 19 <activity android:name=".MainActivity"></activity> 20 <activity android:name=".Main2Activity"></activity> 21 <activity android:name=".Main3Activity"></activity> 22 </application> 23 24</manifest>
###試したこと
onPause()のcountDownTimer=nullを消してみました。
java
1protected void onPause(){ 2 super.onPause(); 3 countDownTimer.cancel(); 4 }
上記のようにしても変化はありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
言語はjava
Android studio 2.3.1
実機はNEXUS7
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/26 11:40
2017/05/26 11:55 編集
2017/05/26 12:06 編集
2017/05/26 12:53 編集
2017/05/26 12:57
2017/05/26 13:05 編集