2013-07-30 3 views
0

증분 카운터가있는 함수가 있는데 사용자가 버튼을 클릭 할 때이를 호출합니다. 사용자가이 기능을 매초마다 호출 할 때 새 버튼을 만들고 싶습니다. 알람 관리자를 사용하고 잘 작동합니다.하지만 브로드 캐스트 수신기에서이 함수를 호출하려고하면 정적이 아니기 때문에 오류가 발생합니다. 어떻게해야합니까?브로드 캐스트 리시버의 다른 클래스에서 비 정적 함수를 호출하려면 어떻게해야합니까?

public class MyStartServiceReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    Toast.makeText(context, "Send ....",Toast.LENGTH_LONG).show(); 

    //Intent service = new Intent(context, AlarmService.class); 
     //context.startService(service);  
     //String msg = intent.getStringExtra("data"); 

    //String msg="data"; 

    a1class.function1(); 

} 

public void function1(){ 

    counter++; 
    //Toast.MakeText(counter); 

} 

답변

0

정적이 아닌 메소드를 호출하려면 호출 할 클래스의 인스턴스가 필요합니다.

당신은 당신은 또한에서 onCreate 방법으로 인스턴스를 설정할 수 있습니다이

private static ClassName instance; 

public static ClassName getInstance(){ 
    if (instance == null){ 
     instance = new ClassName(); 
    } 
    return instance; 
} 

같은 인스턴스를 반환하는 정적 메서드를 만들 수 있습니다.

0

하나, function1()static를 만들거나 클래스에게 그것의를 a1class입니다 가정, 방법

a1class a1class = new a1class(); 
a1class.function1(); 
+0

내가 정적에 내 기능을 변환 할 수있는 기능을 클래스의 인스턴스를 생성하고 전화 ... 내가 증가가 카운터 ... 이것에 대한 튜토리얼? –

+0

그런 다음 예제에 표시된 것처럼 클래스의 인스턴스를 인스턴스화하여 액세스하십시오. – codeMagic

관련 문제