android - 如何使用 BroadcastReciver 从非运行的 android 应用程序启动活动?
问题描述
我使用AlarmManager
and创建了一个警报应用程序BroadcastReciever
。我想alertDialog
在闹钟响起时打开一个。
这是我BroadcastReciver
班级的代码:
public class AlarmReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, AlertDialogActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
Log.d("MyTime","OnReceived called");
}
}
代码AlertDialogActivity
:
public class AlertDialogActivity extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
public void showDialog(Context context, final MediaPlayer mediaPlayer){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View v = inflater.inflate(R.layout.fragment_alarm_running, null);
final AlertDialog dialog = new AlertDialog.Builder(context)
.setView(v)
.setCancelable(false)
.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
});
dialog.show();
}
当应用程序在闹钟响铃期间运行时,对话框显示成功。但是,当应用程序未运行并触发警报时,该onReciver()
方法调用成功,但dialog
不显示。
简单来说,应用程序关闭时AlertDialogActivity
不会调用。onRecieve()
注意:我被迫使用AlertDialog
而不是通知等。
我应该怎么做才能解决这个问题?提前感谢您的回答!
解决方案
推荐阅读
- android - 如何在按钮单击时打开底部导航活动?
- c# - 没有为 index.html 调用 StaticFileOptions.OnPrepareResponse
- javascript - 需要帮助在 javascript 中的表之间切换
- javascript - 在移动视图上显示下拉菜单
- mysql - NodeJs 和 MariaDB,存储用户和密码
- json - 车把单个 json 项目和#each
- php - Laravel - 语言环境可选地作为 URL 中的第一个参数
- google-cloud-platform - 运行查询时出错:“无法运行查询:项目在数据区域中没有预留”
- powerbi - 矩阵视觉显示总值但仍限制日期
- vb6 - CDO 偶尔出现的问题(通过重置窗口解决)