所以我有一个广播接收器,可以收听传入的短信,并在短信中搜索特定的条款。我在清单中实现了接收器,并在与我的活动分开的类中实现了接收器。
的 的 *编辑:* 根据SMS是否包含特定术语,我需要弹出一个对话框,在该对话框中,将向用户显示转到特定网站或不转到特定网站的选项。
如果我用另一种语言做这个,我只会有一个接收器修改的全局变量,然后另一个方法将检查它的值以确定它是否需要执行某些东西,但我不能这样做在android。
答案 0 :(得分:2)
我不确定你的标题和你的问题是否匹配,但如果你想要的是在浏览器中打开一个网站,只需从你的BroadcastReceiver中激活一个Intent。
如果你想要一个明确的AlertDialog,那么请参阅AlertDialog from within BroadcastReceiver?? Can it be done?了解一些细节:你必须使用Intent并在设置新任务标志的情况下启动一个Activity。
编辑:你会做这样的事情:public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, {CLASSNAME}.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
答案 1 :(得分:1)
如果他们允许,那么任何应用程序都可以阻止屏幕,并可能给其他应用程序带来问题。这就是为什么我认为,Android没有给我们利用警报窗口为广播公司。我可能错了,但我测试了一次,但那段时间没用。
替代方案,您可以使用 TOAST
答案 2 :(得分:0)
您希望警报对话框显示为在所有内容之上打开。使用intent以完全清晰/透视背景启动新活动。此技术使警报对话框显示在桌面顶部,并在后台显示图标; - )
答案 3 :(得分:0)
如果你想在onRecieve收到回复后打开警告对话框,然后在OnRecieve中添加以下代码,这里我点击通知后会提示对话。
Intent intent = new Intent(mainContext,HomeActivity.class).putExtra("fromNotificationClick",true);
PendingIntent pIntent = PendingIntent.getActivity(mainContext, (int) System.currentTimeMillis(), intent, 0);
然后在您的家庭活动中在onCreate中添加以下代码,
boolean fromNotificationClick=false;
Bundle extras=getIntent().getExtras();
if(null!=extras)
fromNotificationClick=extras.getBoolean("fromNotificationClick");
if(fromNotificationClick){ alert(); }
最后添加警报方法的代码。
public void alert() {
new AlertDialog.Builder(HomeActivity.this).setIcon(R.drawable.help).setTitle("Alert")
.setMessage("Are you sure....")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "Coming to help", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("No", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "NO...", Toast.LENGTH_SHORT).show();
}
}).show();
}