0

У меня есть приложение, и для меня важно определить изменения во времени. до сих пор у меня есть приемник с правильными намерениями фильтров, как это:Как получить трансляцию смены времени, даже если приложение закрыто

<receiver 
    android:name=".MyReceiver" 
    android:enabled="true" 
    android:exported="true"> 
    <intent-filter> 
    <action android:name="android.intent.action.TIME_SET" /> 
    <action android:name="android.intent.action.ACTION_TIME_CHANGED" /> 
    <action android:name="android.intent.action.DATE_CHANGED" /> 
    </intent-filter> 
</receiver> 

и это мой приемник:

public class MyReceiver extends BroadcastReceiver { 
    public MyReceiver() { 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     SharedPreferences.Editor spe =PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()).edit(); 
     spe.putLong("UFCount", 1)); 
     spe.putLong("FCount", 1)); 
     spe.commit(); 
     Toast.makeText(context.getApplicationContext(), "Your job is being done!!", Toast.LENGTH_LONG).show(); 
    } 
} 

этот приемник работает только тогда, когда приложение открыто \ в-фон. как я могу заставить этот приемник работать, даже если приложение закрыто?

+0

Вы можете проверить эту ссылку [http://stackoverflow.com/a/16824692/4049612](http://stackoverflow.com/a/16824692/4049612) – Krishna

+0

@ Кришна, я не чувствую себя хорошо обслуживание работает все время. я не думаю, что это оптимальный способ сделать это. – hadi

ответ

0

Поскольку приложение закрыто, для отображения Toast нет пользовательского интерфейса (то есть нет активности). На этом этапе в Logcat должно быть исключение. Вы также можете добавить трассировку logcat перед отображением Toast, например Log.d("MyReceiver", "in onCreate()");, и вы должны увидеть ее, даже когда приложение закрыто.

Вместо того, чтобы показывать тост, вы можете, например, отправить local notification, что разрешено, поскольку оно не требует активности из вашего приложения.

+0

Я использовал журнал, но он не работает. я искал журнал, и он не отображается, поэтому приемник не был вызван – hadi

+0

Если вы смотрите на logcat из Android Studio, можете ли вы попробовать отключить фильтры logcat и посмотреть, что вы получаете? У AS иногда возникают проблемы с получением следов из закрытых приложений – Lolo

+0

да, я тоже это сделал. все еще ничего не появляется. я задаюсь вопросом, есть ли у 'android.intent.action.TIME_SET' действие флаг для открытия закрытого компонента приложения?! – hadi

 Смежные вопросы

  • Нет связанных вопросов^_^