如何隐藏从android服务调用的活动
我有一个服务,它有时调用显示alertdialog的活动。。单击“确定”按钮后,我希望转到屏幕上以前显示的应用程序的活动,或者,如果我的应用程序不在前面,则返回到用户显示的窗口。。这是我的对话如何隐藏从android服务调用的活动,android,android-activity,android-alertdialog,android-service,Android,Android Activity,Android Alertdialog,Android Service,我有一个服务,它有时调用显示alertdialog的活动。。单击“确定”按钮后,我希望转到屏幕上以前显示的应用程序的活动,或者,如果我的应用程序不在前面,则返回到用户显示的窗口。。这是我的对话 public class ActivityNotification extends Activity{ private String client,notifica; public void onCreate(Bundle savedInstanceState) { super.onCreate(
public class ActivityNotification extends Activity{
private String client,notifica;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
client = getIntent().getStringExtra("client");
notifica = getIntent().getStringExtra("notifica");
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Notifica da "+client);
alertDialog.setMessage(notifica);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.cancel();
}
});
alertDialog.setIcon(R.drawable.icon);
alertDialog.show();
}
}
这就是我从服务中调用此活动的方式
Notification notification = new Notification(R.drawable.icon, "Notifica da "+client, 10000);
notification.flags |=Notification.FLAG_AUTO_CANCEL;
CharSequence contentTitle = "Notifica da "+client;
CharSequence contentText = notifica;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
//Intent notificationIntent = new Intent(this,ActivityNotification.class);
Intent notificationIntent = new Intent();
notificationIntent.setClassName("package", "package.ActivityNotification");
notificationIntent.putExtra("client",client);
notificationIntent.putExtra("notifica",notifica);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,0);
notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent);
mManager.notify(id, notification);
我能做什么?你能帮我个忙吗?你似乎有很多事情要做,只是为了从服务开始一项活动。为什么你不能像这样做:
Intent intent = new Intent(getBaseContext(), SomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(intent);
?听起来您需要恢复手机上当前应用程序的历史堆栈。ActivityManager可以帮助您实现这一点 参考:
没错!但是正如LuxuryMode所说的,如果可能的话,您应该真正模块化您的代码,这将使它更易于使用!