在onReceive上调用类活动以在后台运行

时间:2016-12-26 21:35:50

标签: android android-activity

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

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

此外我尝试了下面的代码,但它将我重定向到reffered类,如何避免它并调用并运行此类活动但不更改用户界面?

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类:

public class testactivity extends Activity{


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

        Toast.makeText(this, "this is my Toast message!", Toast.LENGTH_LONG).show();
    }



}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我发现了如何不显示目标活动类的UI。 只需将以下代码添加到android清单文件中:

<activity
            android:name=".testactivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
        </activity>