将onReceive类中的活动作为背景调用

时间:2016-12-26 13:49:36

标签: android android-activity

我制作了一个闹钟,一切正常。

内部公共类AlarmReceiver扩展了BroadcastReceiver我有以下工作代码。我的问题是如何调用活动类来使用铃声运行并行(背景)?

我也试过下面的代码,但它不起作用:

public class AlarmReceiver extends BroadcastReceiver

{

@Override
    public void onReceive(Context context, Intent intent)
    {
Toast.makeText(context, "Alarm! Wake up! Wake up!", Toast.LENGTH_LONG).show();

        Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

        if (alarmUri == null)
        {
            alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        }

        Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri);
        ringtone.play();

Intent i = new Intent(context, testactivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);

}
}

我还创建了testactivity java类

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以在runOnUiThread()方法中调用活动。

e.g。

runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            //your activity calling code
                        }
                    });

答案 1 :(得分:0)

下面的代码是我项目的整个活动文件,您可以根据项目的相应变化进行操作。

public class MainActivity extends AppCompatActivity {   

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


        runOnUiThread(new Runnable() {                  
            @Override                                   
            public void run() {                         
                //Your application code here            
            }                                           
        });                                             
    }                                                   
}