마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서비스, 타이머 내에서 토스트를 표현하려는 데 오류는 없는데 작동이 안되네요

0 추천
package com.example.test02;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Service;
import android.content.Intent;

import android.os.IBinder;
import android.widget.Toast;



public class start extends Service{
 
 static float z = 0;

 @Override
 public IBinder onBind(Intent intent){
  return null;
  }
 

 @Override
 public void onCreate(){
  Toast.makeText(this, " Oncreate", 1).show();
  super.onCreate();
  }
 @Override
 public void onDestroy(){
  Toast.makeText(this, "onDestro", 1).show();
  super.onDestroy();
  }
 
 @Override
 public int onStartCommand(Intent intent, int flags, int startId){
  Toast.makeText(this, " onStartCommand", 1).show();

   Timer timer = new Timer();
   // class 
   

   timer.schedule(new TimerTask(){
    
 

    public void run(){

           int r2 = (int)(Math.random()*10)%10;
           int r3 = (int)(Math.random()*10)%10;

           
           r2 = (int) (Math.pow(r2, 2));
           
           r3 = (int) (Math.pow(r3, 2));
           
           z = r2 + r3;
           
           z = (float) (Math.sqrt(z));
           
           
           
           if(z>=5){
      
     Toast.makeText(getApplication(), "too short", 1).show();
      
     
           } 
     
    }
    
   }

    ,  0, 5000);

   
   

  return super.onStartCommand(intent, flags, startId);
  }

그냥 연습용으로 2가지 값을 랜덤으로 받아 값이 크면 토스트를 보이려고하는 데요

if에서 계속 실행이 안되는 것 같네요...

타이머 밖에서는 토스트는 정상적으로 출력되는데

반복적으로만 하려고하면 멈춰버립니다... 해결방법 없을까요

익명사용자 님이 2014년 11월 6일 질문

1개의 답변

0 추천
 
채택된 답변
작업중인스레드에서 UI를 작업중이여서 그런거같은데요.. Handler써보세요
whdrb19 (23,520 포인트) 님이 2014년 11월 6일 답변
...