如何在BroadcastReceiver中访问MainActivity的对象或方法?

记录

我正在创建一个使用AlarmManager通过播放声音来创建警报的android应用为此,我首先创建一个PendingIntent,为此必须创建一个名为AlarmReceiver的类该类扩展了BroadcastReceiver在这个新类中,我重写了onReceive方法,在该方法中,我还开始播放声音。我现在所拥有的有效。但是,作为更大项目的一部分,我稍后将从数据库中获取一些数据。关于我的问题,这些数据并不重要;重要的是,在分析了所有数据之后,所有数据都将归结为布尔变量,该变量为true或false。此变量将在MainActivity中,我想在我的BroadcastReceiver中访问它类来检查它,如果为true,我将停止播放音乐。我检查了许多与这些问题有关的问题,但仍然没有找到解决方案。

MainActivity的代码是:

package com.example.alarmsound;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_main);

    Calendar t = Calendar.getInstance();
    t.add(Calendar.SECOND, 5);

    Context context = this;
    AlarmManager alarmMgr;
    alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this, AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmMgr.set(AlarmManager.RTC_WAKEUP, t.getTimeInMillis(), pendingIntent);
    boolean result; //the variable I want to access to BroadcastReceiver class
}
}

而BroadcastReceiver类的代码是:

public class AlarmReceiver extends BroadcastReceiver{
public AlarmReceiver() {}

@Override
public void onReceive(Context context, Intent intent) {
    final MediaPlayer mp = MediaPlayer.create(context, R.raw.music);
    Log.d("Music", "It went here.");
    mp.start();

    //here, I want to access result
}
}

我真的很感谢您的帮助。

Zeeali

创建您的实例MainActivity并使用方法获取它,然后在中添加以下代码MainActivity

private static MainActivity instance;

@Override
protected void onStart() { // onStart() of your activity
    super.onStart();
    instance = this;
}

public void yourMethod(){
    // Your code here
}

public static MainActivity getInstance(){
    return instance;
}

现在,在您的中BroadcastReceiver,您可以使用以下方法获取实例:

MainActivity obj = MainActivity.getInstance();

您可以使用以下方法调用您的方法:

obj.yourMethod();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从线程对象访问MainActivity中的方法

来自分类Dev

如何在Android Studio中从MainActivity.java访问xml gui对象?

来自分类Dev

如何在片段类中访问 MainActivity 类的公共成员(变量或方法)

来自分类Dev

如何在javascript中的对象内访问对象中的对象?

来自分类Dev

如何在angularjs中访问对象数组

来自分类Dev

如何在processing()对象中访问数据

来自分类Dev

如何在PostMan中访问Request对象

来自分类Dev

如何在BackgroundWorker中访问COM对象?

来自分类Dev

如何在PHP对象中访问信息

来自分类Dev

如何在Javascript中访问JSON对象?

来自分类Dev

如何在PHP中访问stdclass对象

来自分类Dev

如何在php对象中访问数据

来自分类Dev

如何在Typescript中访问JSON对象?

来自分类Dev

如何在angularjs中访问对象数组

来自分类Dev

如何在JavaScript中访问对象?

来自分类Dev

如何在PHP对象中访问数组

来自分类Dev

如何在Jquery中访问JSON对象?

来自分类Dev

如何在javascript中访问对象属性?

来自分类Dev

如何在对象中访问外部 .this

来自分类Dev

如何在查询中访问数组的对象?

来自分类Dev

从BroadcastReceiver对象访问类

来自分类Dev

如何在onCreate()方法中显示MainActivity的布局?

来自分类Dev

如何在Dart中访问对象列表中的对象列表

来自分类Dev

ActionBar:如何从MainActivity访问Fragment的方法?

来自分类Dev

如何访问在main方法中创建的对象

来自分类Dev

如何访问在main方法中创建的对象

来自分类Dev

如何在codeigniter中访问stdclass对象内的stdclass对象

来自分类Dev

如何在Perl中创建多个对象并使用相同的访问方法?

来自分类Dev

如何在类中访问静态方法

Related 相关文章

热门标签

归档