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

关于安卓的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");
                }
            }
        }
    
    
    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-02 18:14
    关注
    评论
  • 不会画板子的物联网工程师 嵌入式开发领域优质创作者 2022-10-05 10:55
    关注

    首先,这里就是一个意图没有啥广播。
    其次,好好去理解一下acticity 的生命周期,按照你这个需求应该是要启动一个后台服务,多去学习一下

    评论
  • 灯塔@kuaidao 2022-10-05 23:19
    关注

    想让activity2处理广播或者接收传递的参数,必须对activity2进行初始化。不跳转情况下让activity2处理广播。这些都是在activity2已经初始化的情况下,也就是说activity2已经在内存中了

    评论
  • 不会写代码的猴子 Android领域优质创作者 2022-10-08 13:53
    关注

    开什么玩笑呢,你Main2Activity没启动,不会触发onCreate

    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 如何利用闲置机械硬盘变现
  • ¥15 信号处理中的凸优化问题
  • ¥15 arm虚拟机无法和物理机互通
  • ¥15 如何在此代码上增加一个统计学生生源的功能?(语言-c语言)
  • ¥15 Android导航条遮盖异常
  • ¥15 计算机网络技术基础问题
  • ¥15 设置mac系统只能访问指定网站
  • ¥15 西门子博途 s7 1200控制三台步进电机
  • ¥15 基于非参数的方向距离函数求污染物影子价格(有偿)
  • ¥15 vue+element 生成table