Lo creo nello stesso modulo.
L'ho nidificato nella classe dell'Activity:
public class MyReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { } }Il metodo onReceive viene dato di default.
Per la registrazione, bisogna prima istanziare la classe creata.
Ci provo...
Scrivo intanto un'azione per l'evento onReceive:
public class MyReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { System.out.println("ricevuto"); } }
Ecco:
public class MainActivity extends AppCompatActivity { MyReceiver myReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceiver=new MyReceiver(); }Ora devo definire un IntentFilter e registrare il Receiver insieme a questo IntentFilter in onResume, deregistrandolo in onPause
Provo a usare l'intentFilter che ho trovato nella costruzione dell'HomeWatcher:
myReceiver=new MyReceiver(); intentFilter=new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);Quindi registro in onResume e deregistro in onPause:
@Override protected void onResume(){ super.onResume(); registerReceiver(myReceiver,intentFilter); } @Override protected void onPause(){ super.onPause(); unregisterReceiver(myReceiver); }Funziona. Intercetta la pressione del tasto Home.
Ma non mi previene la chiusura dell'activity.
Nessun commento:
Posta un commento