Avviare l'attività all'interno di BroadcastReceiver onReceive

Voglio iniziare un'attività nel mio metodo onReceive() .

 package com.splashscreenactivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.widget.Toast; public class SMSReceiver extends BroadcastReceiver { public static String trigger_message = ""; @Override public void onReceive(Context context, Intent intent) { // ---get the SMS message passed in--- Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; String str = ""; if (bundle != null) { // ---retrieve the SMS message received--- Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i = 0; i < msgs.length; i++) { msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); str += "SMS from " + msgs[i].getOriginatingAddress(); str += " :"; trigger_message = msgs[i].getMessageBody().toString(); str += trigger_message; str += "\n"; } // ---display the new SMS message--- Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); if (trigger_message.equals("dx")) { Toast.makeText(context, "I am triggered", Toast.LENGTH_LONG) .show(); // ///////////////////////// // i want to start here // //////////////////////// // MainScreenActivity.trigger="Now"; // Intent i = new Intent(context,GPS.class); // i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // context.startActivity(i); } else { Toast.makeText(context, "I am not triggered, Bbyz!!!", Toast.LENGTH_LONG).show(); } } } } 

qui è GPS.class

  • Ottenere il frammento associato dynamicmente a <FrameLayout>?
  • Android - Come modificare i frammenti nel cassetto di navigazione
  • View.onDraw () - quando viene chiamato?
  • Come distriggersre Crashlytics durante lo sviluppo
  • Android utilizzando SQLCipher - come si può decrittografare?
  • Errore: (1, 0) Plugin con id 'android' non trovato
  •  package com.splashscreenactivity; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.telephony.SmsManager; import android.telephony.SmsMessage; import android.widget.TextView; import android.widget.Toast; public class GPS extends Activity implements LocationListener { TextView latitude, logitude; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gps); LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this); Toast.makeText(this, "im started", Toast.LENGTH_LONG); // latitude = (TextView)findViewById(R.id.txtLat); // logitude = (TextView)findViewById(R.id.txtLongi); // latitude.setText("Loading..."); // logitude.setText("Loading..."); } String LATTITUDE; String LOGITUDE; @Override public void onLocationChanged(Location location) { double lat = location.getLatitude(); double lag = location.getLongitude(); LATTITUDE = Double.toString(lat); LOGITUDE = Double.toString(lag); // latitude.setText(LATTITUDE); // logitude.setText(LOGITUDE); // SmsManager sm = SmsManager.getDefault(); // // here is where the destination of the text should go // String number = "5556"; // sm.sendTextMessage(number, null, // "latitude="+latitude.getText()+"\nlongitude="+logitude.getText(), // null, null); } @Override public void onProviderDisabled(String arg0) { } @Override public void onProviderEnabled(String arg0) { } @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { } // /** Register for the updates when Activity is in foreground */ // @Override // protected void onResume() // { // super.onResume(); // lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, // this); // } // // /** Stop the updates when Activity is paused */ // @Override // protected void onPause() { // super.onPause(); // lm.removeUpdates(this); // } } 

  • Come mostrare più marcatori su MapFragment in Google Map API v2?
  • Allinea le viste del figlio al centro dell'aspetto di ViewPager android
  • Quali linguaggi di programmazione può essere utilizzato per sviluppare applicazioni Android?
  • Perdita di memory nell'ascoltatore di events
  • DrawerLayout in cima a Actionbar
  • Il file convertito da MediaCodec da WAV a AMR non viene riprodotto
  • 2 Solutions collect form web for “Avviare l'attività all'interno di BroadcastReceiver onReceive”

    Hai il context passato come parametro al metodo onRecieve (), quindi utilizza semplicemente:

      @Override public void onReceive(Context context, Intent intent) { //start activity Intent i = new Intent(); i.setClassName("com.test", "com.test.MainActivity"); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } 

    Funziona, ovviamente devi cambiare il nome del tuo pacchetto e il tuo nome di attività.

    Sto usando questo e il suo lavoro sul mio sito:

     Intent intentone = new Intent(context.getApplicationContext(), DialogAct.class); intentone.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intentone); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.