我有一个活动用于清除一些静态变量并在点击通知时打开浏览器,如果通知被刷掉,活动就会关闭而不打开浏览器,我设法通过在用于启动活动的意图中使用额外的布尔值来完成此操作。
由于此活动仅用于清理变量并偶尔打开浏览器,因此一旦完成其工作,它将以finish()关闭,但在调完完成后...应用程序随机启动另一个活动(主菜单)该应用程序)。
我不知道是什么原因造成这种奇怪的事情。
我用来创建通知的代码是:
Intent openNotification = new Intent(cText,LaunchBrowser.class).putExtra("url", notifica.getURL()).putExtra("open", true);
Intent closeNotification = new Intent(cText,LaunchBrowser.class).putExtra("open", false));
NotificationCompat.Builder notificBuilder =
new NotificationCompat.Builder(cText)
.setContentTitle("New Notification")
.setContentText(notifica.getText())
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(PendingIntent.getActivity(cText, getUniqueID(), openNotification, PendingIntent.FLAG_CANCEL_CURRENT))
.setDeleteIntent(PendingIntent.getActivity(cText, getUniqueID(), closeNotification, PendingIntent.FLAG_CANCEL_CURRENT))
.setAutoCancel(true);
((NotificationManager)getSystemService(NOTIFICATION_SERVICE)).notify(0, notificBuilder.build());
currentNotification = notifica.getText();
LaunchBrowser类:
public class LaunchBrowser extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch_browser);
onNewIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
WebNotificChecker.currentNotification = "";
WebNotificChecker.currentNotificationCounter = 0;
if(intent.getBooleanExtra("open",false)){
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(intent.getStringExtra("url"))));
}
finish();
}
}
代码执行它应该做的事情,唯一的问题是,当我从电话主页滑开通知时,主菜单打开,并且......实际上,自从MainActivity以来,它对我有意义class永远不会写在LaunchBrowser代码上,也不会写在创建通知的部分......