qq_40619811 2022-10-02 17:51 采纳率: 89.8%
浏览 50
已结题

关于安卓的Intent和发送广播的问题

你好,我现在做关于安卓广播的问题。现在有如下代码
这是MainActivity的代码

public class MainActivity extends AppCompatActivity {
Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_main);
        btn=findViewById(R.id.btn1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent();
                intent.setAction("android.intent.action.s");
                intent.putExtra("yes","yes");
                MainActivity.this.sendBroadcast(intent);
            }
        });

    }

这是Main2Activity的代码

public class Main2Activity extends AppCompatActivity {
Button btn;
String yes1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        yes1=getIntent().getStringExtra("yes");
        Log.e("我的活动","我的活动2");
        btn=findViewById(R.id.btn2);
    }
}

这是Manifests清单的代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Main2Activity">
            <intent-filter>
                <action android:name="android.intent.action.s"></action>
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


当我点击MainActivity的按钮时,发现点击后没有任何反应。这是为什么?
我的要求是
1、MainActivity不能跳转到Main2Activity的界面,不能跳转到Main2Activity的界面
2、MainActivity能执行Main2Activity里面的onCreate方法,能把log打印出来,就是那个“我的活动”,“我的活动2”这几个字能打印出来
3、MainActivity能不跳转,将值传到Main2Activity中,Main2Activity的yes1字符串不能为null或“”,也就是空值或者空字符串。而是能传值,将这个yes字符串传到Main2Activity里面
要求就是以上三点
大家认为应该怎么办?怎么做才可以。

  • 写回答

5条回答 默认 最新

  • liujichangdeboke 2022-10-08 11:04
    关注
    获得7.50元问题酬金

    Main2Activity按照下面修改一下应该就可以了,建议需要仔细学习一下 broadcast 的使用,教程有很多。。。

    public class Main2Activity extends AppCompatActivity {
            Button btn;
            String yes1;
            MyBroadCastReceiver myBroadCastReceiver;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main2);
                btn=findViewById(R.id.btn2);
                myBroadCastReceiver = new MyBroadCastReceiver();
                IntentFilter intentFilter1 = new IntentFilter();
                intentFilter1.addAction("android.intent.action.s");
                Main2Activity.this.registerReceiver(myBroadCastReceiver, intentFilter1);
            }
            class MyBroadCastReceiver extends BroadcastReceiver{
                @Override
                public void onReceive(Context context, Intent intent) {
                    //此处的indent为sendBroadcast发送的Indent
                    yes1=getIntent().getStringExtra("yes");
                    Log.e("我的活动","我的活动2");
                }
            }
        }
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 10月10日
  • 创建了问题 10月2日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!