java - SMSManager 和待处理 Intent

标签 java android

我对我正在创建的短信应用程序有疑问(学习目的)。

发送短信时,我希望在发送(或未发送)后显示一条 toast 消息

问题是,一旦我点击发送,我想关闭 Activity ,但仍然会出现 toast 消息(在本例中),为我提供信息。

由于我是新手,所以我不知道如何解决这个问题。我所做的就是等待信息通过,设置消息然后关闭 Activity 。

private void sendSMS() {
    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), PendingIntent.FLAG_NO_CREATE);
    deliverActivity = new BroadcastReceiver() {
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode()) {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS delivered", 
                    Toast.LENGTH_LONG).show();
                    finishActivity();
                    break;
                case Activity.RESULT_CANCELED:
                    Toast.makeText(getBaseContext(), "SMS not delivered", 
                    Toast.LENGTH_LONG).show();
                    finishActivity();
                    break;           

            }
        }
    };

    registerReceiver(deliverActivity, new IntentFilter(DELIVERED));        

    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(toNo, null, toSend.getText().toString(), deliveredPI, null);

    ContentValues values = new ContentValues();
    values.put("address", toNo);
    values.put("body", toSend.getText().toString());
    this.getContentResolver().insert(Uri.parse("content://sms/sent"), values);

}

private void finishActivity() {
    unregisterReceiver(deliverActivity);
    Intent intent = new Intent();
    setResult(123, intent);
    finish();
}

我确信这是可能的,甚至可以将其传递给另一个 Activity 。

这听起来可能有点迂腐,但它让我能够学习新的做事方式......所以如果有人能指出我正确的方向,那就太好了。

谢谢!

最佳答案

有多种方法可以在 Activity 关闭后显示 toast,例如,请参阅以下问题: Android: Show toast after finishing application / activity

参见this也是如此。

关于java - SMSManager 和待处理 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9511630/

相关文章:

java - ./gradlew桌面:run does not work but setting a configuration does : libgdx

java - 我怎样才能让maven在我的构建成功或失败时通过一些蜂鸣声或其他东西来通知?

java - 从 ListView Adapter 中的循环构造 ID 数组 android

java - Android 从类中读/写

android - 如何访问 string.xml 中的字符串

java - 如何从android中的Edittext连续获取值

android - homebrew 在哪里安装 android-sdk?

java - 方法引用中的类型推断

Android 几个 MediaPlayer

android - DatePicker 的自定义对话框布局有问题