0

버튼을 클릭 한 후 10 sec 후에 장치에 이미 설치된 테스트 프로젝트를 호출하도록 예약해야합니다. 이를 위해 실제로 테스트 프로젝트를 호출하는 AlarmReceiverTaskService을 만들었습니다.AlarmManager가 서비스를 실행하지 않음

앱을 실행 한 후 버튼을 클릭해도 아무 반응이 없습니다. 무엇이 잘못되었는지는 모르겠지만 10 초 후에도 서비스가 수행되지 않습니다.

아래 코드는 제가 시도하고있는 코드입니다. 활동 클래스 :

// Create an anonymous implementation of OnClickListener 
private OnClickListener HTListener = new OnClickListener() { 
    public void onClick(View v) { 
     btnStartSchedule(v); 
    } 
}; 


public void btnStartSchedule(View v) { 
    try { 
     AlarmManager alarms = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); 

     Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); 
     intent.putExtra(AlarmReceiver.ACTION_ALARM, AlarmReceiver.ACTION_ALARM); 


     final PendingIntent pIntent = PendingIntent.getBroadcast(this, 1234567, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

     alarms.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 10000, pIntent); 

     Toast.makeText(ScrapeActivity.this, "Alarm Started", Toast.LENGTH_LONG).show(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

AlarmReceiver 클래스 :

public class AlarmReceiver extends BroadcastReceiver { 

public static String ACTION_ALARM = "com.alarmmanager.alarm"; 

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

    Log.i("Alarm Receiver", "Entered"); 
    Toast.makeText(context, "Entered", Toast.LENGTH_SHORT).show(); 

    Bundle bundle = intent.getExtras(); 
    String action = bundle.getString(ACTION_ALARM); 

    if (action.equals(ACTION_ALARM)) { 
     Log.i("Alarm Receiver", "If loop"); 
     Intent inService = new Intent(context, LaunchService.class); 
     context.startService(inService); 
    } else { 
     Log.i("Alarm Receiver", "Else loop"); 
     Toast.makeText(context, "Else loop", Toast.LENGTH_SHORT).show(); 
    } 
} 

}

그리고 마지막으로 LaunchService 클래스 :

public class LaunchService extends IntentService { 

public LaunchService(String name) { 
    super(name); 
    // TODO Auto-generated constructor stub 
} 


@Override 
protected void onHandleIntent(Intent intent) { 
    Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.my.testproject"); 
    startActivity(LaunchIntent); 
} 

} 

내가 가진 또한 내부의 수신기와 서비스를 언급 매니페스트 파일 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.my.pb.activity" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="19" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/PB_APP" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.my.pb.activity.ScrapeActivity" 
     android:label="@string/PB_APP" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver 
     android:name=".AlarmReceiver" 
     android:process=":remote" > 
    </receiver> 

    <service android:name=".LaunchService" > 
    </service> 
</application> 

는 이해가 안 뭐죠 로그 캣에서 예외가 없습니다 사촌 문제. 버튼을 클릭하면, 나는 축배 메시지가 Alarm Started이라고 말하는 것을 볼 수 있습니다. 도와주세요.

+1

manifest.xml에서 수신자와 서비스를 선언했는지 확인하십시오. –

+0

예. 언급하는 것을 잊어 버렸습니다. 나는 그 질문을 편집했다. 제가 올바르게 언급했는지 확인하십시오. –

+0

수신기 코드가 적어도 실행됩니까? 나는 onRecieve 메소드의 로그가 logcat에 인쇄되는 것을 의미합니까? –

답변

3

Manifest에 오타가 있는데 .AlarmReceiver 대신 AlaramReceiver을 입력하셨습니다.

+0

'android : name = "을 사용합니다. AlarmReceiver"도 도움이되지 않습니다. –

+0

@VaibhavShukla 잘 작동합니다. 업데이트 된 매니페스트 게시 완료 – nikis

+0

추가됨. 참조하십시오. –

관련 문제