我的通知服务开始主活动,如果我的应用程序已按下home键最小化



我的应用有一个通知服务。问题是,当我的应用程序被最小化时(通过按home键),通知服务触发一个通知,我的主要活动就会自己开始。它真的很烦人,我需要解决它。

有可能的解决方案吗??

我尝试使用android:launchMode="singleInstance"作为解决方案@为什么从一个小部件开始一个活动导致我的主要活动开始?但这个解决方案的问题是,如果我试图重新启动我的应用程序使用"长按home键,它给出了最近使用的应用程序列表",我的应用程序永远不会运行。

为了重新运行它,我必须在菜单中找到我的应用程序图标并从那里打开它。

有没有一种方法可以同时解决这两个问题?

生成通知的活动:

org.example.com包;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
public class ParentActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_copy);
    NotificationManager newNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    final Notification notificationDetails = new Notification(R.drawable.icon,"Downloads available!!",System.currentTimeMillis());
    notificationDetails.flags = Notification.FLAG_AUTO_CANCEL;
    Intent newIntent = new Intent(this,ParentActivity.class);
    newIntent.putExtra("IS_FOREGROUND",1);
    //newIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent newPendingIntent = PendingIntent.getActivity(this, 0, newIntent, 0);
    CharSequence contentTitle = "Downloads Available!!";
    CharSequence contentText  = "Some new Downloads are available, click to enable.";
    int notificationId = 3;
    notificationDetails.setLatestEventInfo(this, contentTitle, contentText, newPendingIntent);
    newNotificationManager.notify(notificationId, notificationDetails);
    finish();
}
}

我看到在你的代码,你是在一个活动,这就是为什么你的应用程序来到前台我认为。您的服务是否启动此活动?如果是一个触发通知的服务,为什么不在该服务中创建通知呢?然后你的应用程序将留在后台。

最新更新