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

java.lang.runtimeException 도와주세요...

0 추천
package com.test;

import java.util.*;

import android.app.*;
import android.content.*;
import android.content.pm.*;
import android.content.pm.PackageManager.*;
import android.net.Uri;
import android.os.*;
import android.util.*;
import android.view.*;
import android.view.Window.Callback;
import android.widget.*;
import com.example.helloworld.R;

public class Main_Activity extends Activity{
 private Intent intent = new Intent(Intent.ACTION_MAIN);
 private Handler mHandler;
 private TouchThread mTouchThread;
 protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Button bt = (Button)findViewById(R.id.button1);
  bt.setOnClickListener(listener);
  mHandler = new Handler();
 }
 Button.OnClickListener listener = new Button.OnClickListener(){
  public void onClick(View v){
   Toast.makeText(getApplicationContext(), "실행하겠습니다.", Toast.LENGTH_LONG).show();
   EditText result1 = (EditText)findViewById(R.id.editText1);
   EditText result2 = (EditText)findViewById(R.id.editText2);
  try{
   int i1 = Integer.valueOf(result2.getText().toString());}catch(NumberFormatException e){Toast.makeText(getApplicationContext(), "숫자를 입력해 주세요", Toast.LENGTH_LONG).show();}
   if(result1.getText().toString().length()<=0)Toast.makeText(getApplicationContext(), "검색 단어들을 입력해주세요.", Toast.LENGTH_LONG).show();
   else if(result2.getText().toString().length()<=0)Toast.makeText(getApplicationContext(), "시간을 입력해주세요.", Toast.LENGTH_LONG).show();
   else{
    String[] a1 = result1.getText().toString().split(",");
    startService(new Intent("macro.start"));
    intent.addCategory(intent.CATEGORY_HOME);
    intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    Intent intent2 = new Intent();
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://naver.com")));
    mTouchThread = new TouchThread(true,Integer.parseInt(result2.getText().toString()),373,323);
    mTouchThread.start();
      }
  }
 };
 class TouchThread extends Thread {
  private boolean isPlay = false;
  private int n,n1,n2;
  public TouchThread(boolean isPlay,int n,int n1,int n2){
   this.isPlay = isPlay;
   this.n=n;
  }
  public void run(){
   super.run();
   while(isPlay){
    try {Thread.sleep((int)(Math.random()%2000+n));}catch(InterruptedException e){e.printStackTrace();}
    mHandler.post(new Runnable(){
     public void run(){
      Instrumentation inst = new Instrumentation();
      long downTime = SystemClock.uptimeMillis();
      long eventTime = SystemClock.uptimeMillis();
      MotionEvent down_event = MotionEvent.obtain(downTime, eventTime,   MotionEvent.ACTION_DOWN,(float)(Math.random()%865+n1),(float)(Math.random()%148+n2),0);
      MotionEvent up_event = MotionEvent.obtain(downTime, eventTime,   MotionEvent.ACTION_UP,(float)(Math.random()%865+n1),(float)(Math.random()%148+n2),0);
      inst.sendPointerSync(down_event);
      inst.sendPointerSync(up_event);
     }
    });
   } 
  }
 }
}

 

생초보 (130 포인트) 님이 2014년 12월 3일 질문
생초보님이 2014년 12월 3일 수정

1개의 답변

+1 추천

touch(373,323);

이것을 빼면 에러가 없나요?

그리고 소스를 올리실때에 &nbsp;
 이것좀 빼고 올리세요

눈아파요;;



doridori2013@nate.com

익명사용자 님이 2014년 12월 3일 답변
네.. touch 에서 문제발생하는건데 저기서 어떻게해야할지 지금 쓰레드로 빼가지고 run()안에다 했는데도 뜨네요..
touch 부분을 AsyncTask로 빼서 처리해보세요
...