Im scrivendo un programma che offre una finestra di dialogo di risposta rapida al ricevimento di un SMS.attività di dialogo aperto Android senza aprire attività principale dietro di esso
Tuttavia, sto ottenendo un risultato inaspettato. Quando ricevo un SMS, viene visualizzata l'attività di dialogo appropriata con il numero di telefono e il messaggio corretti, tuttavia esiste una seconda attività dietro di essa che è l'attività "predefinita" nel mio programma (è ciò che si apre quando lancio la mia applicazione)
Non voglio che questa seconda attività venga fuori. L'attività di risposta rapida dovrebbe venire da sola sopra a qualsiasi cosa l'utente stesse facendo prima.
Il 'flottante' attività:
public class quickReply extends Activity {
String mNumber, mMessage;
TextView mMainText;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mMainText = (TextView)findViewById(R.id.mainText);
try{
Intent i = getIntent();
Bundle extras = i.getExtras();
mNumber = extras.getString("theNumber");
mMessage = extras.getString("theMessage");
this.setTitle("Message From:" + mNumber);
mMainText.setText(mMessage);
} catch(Exception e) {
mMainText.setText(e.getMessage());
}
}
}
La chiamata all'attività all'interno di un OnReceive()
Intent i = new Intent(context, quickReply.class);
i.putExtra("theNumber", mNumber);
i.putExtra("theMessage", mMessage);
i.setFlags(
Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
manifesto:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".quickReply"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name=
"android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>