2011-03-01 3 views
0

모두. 단추 누르기 횟수를 계산하는 간단한 응용 프로그램을 만들려고합니다. 이 작업을 수행하는 백그라운드 서비스를 사용하려고합니다. 응용 프로그램은 "Press Me!"의 횟수를 계산합니다. 토스트 형태로 Exit (종료) 버튼을 클릭하면 해당 번호가 클릭되어 표시됩니다. 실행되지만 부턴 클릭 수는 표시되지 않습니다. 내 코드는 다음과 같습니다 : 나는 또한 날짜, 시간, 위도와 경도를 사용자가 응용 프로그램을 사용하는 각 시간을 확보하고자하는안드로이드 응용 프로그램에서 버튼을 몇 번 클릭했는지 측정

public class MainActivity extends Activity { 

Button buttonStop, press; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    buttonStop = (Button) findViewById(R.id.buttonStop); 
    press = (Button) findViewById(R.id.buttonpress); 

} 


    public void onClick(View src) { 
     switch (src.getId()) { 
     case R.id.buttonpress: 
      Toast.makeText(MainActivity.this, "Service has started", Toast.LENGTH_SHORT).show(); 
      startService(new Intent(this, MyService.class)); 
      break; 
     case R.id.buttonStop: 
      stopService(new Intent(this, MyService.class)); 
      finish(); 
      break; 

     } 
    } 

public class MyService extends Service { 

int count= 0; 
MainActivity main; 
/** 
* @see android.app.Service#onBind(Intent) 
*/ 
@Override 
public IBinder onBind(Intent intent) { 
    // TODO Put your code here 
    return null; 
} 

@Override 
public void onCreate() { 

    Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show(); 


    } 

public void onDestroy() { 

    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show(); 
    Toast.makeText(this, "Number of times this button was pressed = " + count, Toast.LENGTH_LONG).show(); 

} 

public void onStart(Intent intent, int startid) { 

    count = count +1 ; 

} 
} 

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<TextView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/hello" 
/> 

<Button android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Exit" 
android:id="@+id/buttonStop"> 
</Button> 


<Button android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Press Me!" 
android:id="@+id/buttonpress"> 
</Button> 

</LinearLayout> 

. 누군가 제발 나를 도와 줄 수 있니? 이것은 처음으로 서비스를 구축하고 어떤 도움을 많이 주시면 감사하겠습니다.

+0

호기심에서 벗어난 이유는 무엇입니까? 아니면 간단하게 서비스를 만드는 경험을 얻는 것입니까? –

+0

언제 서비스가 생성되어야합니까? "를 누르십시오!" '버튼이나 활동 생성시? –

+0

@Engprof : Java 코드의 버튼은 어디에 있습니까? – Mudassir

답변

0

토스트 메시지가 표시되도록하려면 onDestroy 대신 Exit 버튼을 클릭하십시오.

1

거의 다 왔어! 당신이 깜빡

세 가지 : - 당신은 컴파일러가 당신을 밀고 한 것입니다 귀하의 onclick() 메소드 전에 @Override을 사용했다면

  • 은 MainActivity가 View.OnClickListener을 구현하게한다. 일반적으로 프레임 워크가 호출 할 것으로 예상되는 함수를 구현할 때마다 정상 검사로 @Override을 사용하십시오.
  • View.setOnClickListener()를 사용하여 버튼에 MainActivity를 연결합니다 -이 실제로 클릭 할 때의 onclick() 메소드를 호출하는 버튼을 알 수 있습니다.

  • (가능) 내 AndroidManifest.xml - 스틱 <service android:name="MyService"/> 요소에 서비스를 정의하십시오. 이 작업을 수행하지 않았다면 Logcat (DDMS 또는 Debug 퍼스펙티브)을보고 알 수 있었다. 그것은 말한 것입니다 :

    서비스의 의도를 시작할 수 없습니다

[...] : 나는 당신의 코드에서 변경 한 모든, 그리고 다음 토스트가 나타났다

를 찾을 수 없음 적절한 클릭 수와 함께 내 화면에 표시됩니다.

관련 문제