2014-03-25 5 views
0

그래서 나는보기가 위젯 뷰 클래스에서 스레드를 시작 이 줄의 "ExpressionAngine"메시지 위젯 내에서 활동을 가져 오더라도 "DownloaderThread (UpdateActivity, ...)"활동 이름 (UpdateActivity)에 더 구체적으로 표시됩니다.안드로이드는

avo 이 ID는 여전히 스레드를 호출 할 수 있습니다.

아이디어는 RadialMenuWidget을 사용하고 RadialMenuWidget 클래스에서 어떤 메뉴 버튼을 눌렀는지 확인하고 그 결과에 따라 다음 작업을 결정합니다. 다른 의도를 호출하면 잘 작동하지만, 지금은 (내가 정기적 활동의 onButtonClick에서 호출 할 수있는) 별도의 스레드를 사용하여 파일을 다운로드 시작하려는

편집 그래서 내 radialMenu이 구조가 :

public class RadialMenuWidget extends View { 
... 
    public interface RadialMenuEntry { 
    ... 
    } 
    public RadialMenuWidget(Context context) { 
    ... 
    } 
    @Override 
    public boolean onTouchEvent(MotionEvent e) { 
    ... 
     if (state == MotionEvent.ACTION_UP) { 
     ... 
      if (menuEntries.get(i).getName() == "Update now") { 
       String urlInput = "http://myhost.com/"+mynewfile; 
       DownloaderThread downloaderThread = new DownloaderThread(this.UpdateActivity, urlInput); 
       downloaderThread.start(); 
      } 
     } 
... 

는 그리고 DownloadThread 클래스는 다음과 같습니다

public class DownloaderThread extends Thread { 

public DownloaderThread(UpdateActivity inParentActivity, String inUrl) 
    { 
     downloadUrl = ""; 
     if(inUrl != null) 
     { 
      downloadUrl = inUrl; 
     } 
     parentActivity = inParentActivity; 
    } 

@Override 
    public void run() 
    { 
    // does the download 
    } 
... 
} 

도와주세요.

고마워요.

+0

"DownloaderThread"의 서명은 무엇입니까? 'UpdateActivity'는 이름이고 참조는 아닙니다. – DeeV

+0

더 나은 코드를 볼 수 있도록 좀 더 많은 코드 (EDITED)를 추가했습니다. 내가 무엇을해야하고 왜해야하는지 설명해주십시오. 고마워요 – user1137313

+0

실제로 UpdateActivity에서 DownloaderThread를 호출했지만 지금은이 액티비티에 RadialMenuWidget을 추가하고 RadiaMenuWidget 클래스에있는 메뉴 항목을 클릭하여 다운로더를 호출하려고합니다 ... – user1137313

답변

0

내 솔루션은 이미지를 사용하여 2 버튼 방사형 메뉴를 모방하는 것이 었습니다. 이미지를 단추의 배경으로 사용하여 선형 레이아웃에 배치하고 9- 패치 이미지를 사용하고 이전처럼 onClick 스레드를 호출해야합니다. 그래서 나는이 뷰에서 radialMenuWidget을 다루는 것을 피했다. 질문이 끝났습니다. 나는 안드로이드를 배우는 것을 초보자이고 열심 인 이래로이 문제에 대한 자바 솔루션을 원했지만, 이것이 나의 (못생긴) 솔루션으로 관리 할 것입니다.