私のアプリケーションでは、CountDownTimer に 1 つのスレッドを使用したいので、以下のコードを記述します。
しかし、数秒後にアプリケーションを実行すると、LogCat でエラーが表示されます。
私のコード:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_auction_detail_bid, null);
new CountDownTimer(newCalculateTime, 1000) {
public void onTick(long millisUntilFinished) {
if (millisUntilFinished / 1000 <= newCanOfferBeforeTime) {
Constants.currentActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
getlast6BidData();
}
});
}
}
public void onFinish() {
}
}.start();
return v;
}
private void getlast6BidData() {
thread = new Thread() {
@Override
public void run() {
getUpdateBidsList(Constants.detailAuctionGmodel.getRes().getDetail().getCalculate_end());
try {
sleep(last6RunStartTimer);
getlast6BidData();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}
LogCat エラー:
E/UncaughtException: java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:722)
at com.app.android.Fragments.AuctionDetailBidFragment.getlast6BidData(AuctionDetailBidFragment.java:744)
at com.app.android.Fragments.AuctionDetailBidFragment.access$100(AuctionDetailBidFragment.java:73)
at com.app.android.Fragments.AuctionDetailBidFragment$12.run(AuctionDetailBidFragment.java:737)
どうすれば修正できますか?