我的应用有通知服务。问题是当我的应用程序被最小化[通过按下主页按钮]并且通知服务触发通知我的主要活动自己开始。它真的很烦人,我需要解决它。
任何一个有可能的解决方案?
我尝试使用android:launchMode =“singleInstance”作为解决方案@ Why does starting an activity from a widget cause my main activity to start as well?,但这个解决方案的问题是,如果我尝试使用“长按主页按钮重新启动我的应用程序,这给出了最近使用的应用程序列表“我的应用程序永远不会运行。
为了重新运行它,我必须在菜单中转到我的应用程序图标并从那里打开它。
有没有办法可以解决这两个问题?
生成通知的活动:
package 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();
}
}
答案 0 :(得分:0)
我在你的代码中看到你正在进行一项活动,这就是为什么你的应用程序出现在我想的前台。您的服务是否开始此活动? 如果是触发通知的服务,为什么不在该服务中创建通知?然后你的申请将留在后台。