如何隐藏从android服务调用的活动

如何隐藏从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(

我有一个服务,它有时调用显示alertdialog的活动。。单击“确定”按钮后,我希望转到屏幕上以前显示的应用程序的活动,或者,如果我的应用程序不在前面,则返回到用户显示的窗口。。这是我的对话

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所说的,如果可能的话,您应该真正模块化您的代码,这将使它更易于使用!