Я пишу программу, которая предлагает диалоговое окно быстрого ответа по получении SMS.
Однако я получаю неожиданный результат. Когда я, receieve, SMS, соответствующее диалоговое действие подходит, отображая корректный номер телефона и сообщение, однако существует второе действие позади него, которое является действием 'по умолчанию' в моей программе (это - то, что открывается, когда я запускаю свое приложение),
Я не хочу, чтобы это второе действие подошло. Действие быстрого ответа должно подойти отдельно по вершине того, что пользователь делал прежде.
'Плавающее' действие:
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());
}
}
}
Вызов к действию в 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);
Декларация:
<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>