2014-12-24 4 views
0

Я искал на форуме, но он работает для других. Что не так в моем AlarmManager? Я хочу, чтобы вызвать класс CallDataSend в каждую минутуAndroid AlarmManager не работает

public class MainActivity extends ActionBarActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Intent alarmIntent = new Intent(this, CallDataSend.class); 

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, 
      alarmIntent, PendingIntent.FLAG_ONE_SHOT); 

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (2 * 1000), pendingIntent); 
    Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show(); 
    } 
} 

класс CallDataSend:

public final class CallDataSend extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show(); 

} 
} 

и XML-файл:

<receiver 
     android:name="CallDataSend" 
     android:enabled="false"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"></action> 
     </intent-filter> 
    </receiver> 

ответ

2

Я считаю, что вы должны сделать приемник с поддержкой до него могут быть созданы системой.

<receiver 
     android:name="CallDataSend" 
     android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"></action> 
     </intent-filter> 
    </receiver> 
2

Вы также должны назвать свой приемник с «.YourClass» вместо „YourClass“ если класс находится в том же пакете, объявленной в атрибутах манифеста или с „YourCompletePackage.YourClass“ если это не так.

Ex: в вашем случае,

<receiver 
    android:name=".CallDataSend" 
    android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"></action> 
    </intent-filter> 
</receiver> 

в другом случае,

<receiver 
    android:name="com.example.CallDataSend" 
    android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"></action> 
    </intent-filter> 
</receiver> 
Смежные вопросы