BroadcastReceiver на Application.onCreate () - PullRequest
0 голосов
/ 04 марта 2012

Я пытаюсь сделать виджет, который будет реагировать на ACTION_SCREEN_ON/_OFF.Я попытался объявить BroadcastReceiver в манифесте, но это не сработало.Где-то я читал, что это должно быть прописано в коде.Я написал:

    public class TimeTableApp extends Application {

    public void OnCreate() {
       Log.d("FinWi","appOncreate");
       Context cnt = this.getApplicationContext();
       IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
       intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
       intentFilter.addAction(Intent.ACTION_DATE_CHANGED);
       BroadcastReceiver mReceiver = new ScreenStateBroadcastReceiver();
       cnt.registerReceiver(mReceiver, intentFilter);
       super.onCreate();
    }
  } 

    <application android:name=".TimeTableApp"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

     <receiver android:name=".TimeTableWidgetProvider">
        <meta-data android:name="android.appwidget.provider"
                android:resource="@xml/appwidget_provider" />
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
     </receiver>

    </application>`

Не звонит onCreate().

1 Ответ

0 голосов
/ 13 января 2016

Если это именно тот код, который вы пробовали, то проблема в том, что у вас все неправильно с методом onCreate. Вот как это должно выглядеть (должен быть @Override, а onCreate начинается с «o» вместо «O»,):

 @Override
    public void onCreate()
    {
           .
           .
           .
...