收到通知后,我启动一个活动,加载一个webview。它第一次运行良好,但当我第二次收到通知时,它会在现有的webview上打开一个新的webview。
我希望能够把活动放在前面,而不是创建一个新的网络视图,因为页面已经在后台打开了。
处理通知的函数:
private void handleNotification() {
final Intent notificationIntent = new Intent(this, WebViewActivity.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(notificationIntent);
Log.d(TAG, "Short lived task is done.");
}
我的网络视图活动:
public class WebViewActivity extends AppCompatActivity {
private static final String TAG = "WebViewActivity";
static boolean active = false;
private Bundle savedInstanceStatee;
private void loadWebView(){
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings settings = myWebView.getSettings();
// Enable Javascript
settings.setJavaScriptEnabled(true);
// Allow use of Local Storage
settings.setDomStorageEnabled(true);
// AppRTC requires third party cookies to work
settings.setMediaPlaybackRequiresUserGesture(false);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(myWebView, true);
if (savedInstanceStatee != null){
Log.d(TAG,"restoring instance");
myWebView.restoreState(savedInstanceStatee);
}else {
Log.d(TAG,"no saved instance");
//Change to your URL
myWebView.loadUrl("https://example.com");
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
Log.d(TAG, "onPermissionRequest");
Log.d(TAG,"permissions granted");
request.grant(request.getResources());
}
});
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
super.onCreate(savedInstanceState);
this.savedInstanceStatee = savedInstanceState;
setContentView(R.layout.activity_web_view);
//check for permissions and if granted load the webview
loadWebView();
}
@Override
protected void onResume() {
Log.i(TAG, "Resuming web view activity");
super.onResume();
}
@Override
public void onStart() {
Log.i(TAG, "Starting web view activity");
super.onStart();
active = true;
}
@Override
public void onStop() {
Log.i(TAG, "Stopped web view activity");
super.onStop();
active = false;
}
@Override
protected void onSaveInstanceState(Bundle bundle) {
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.saveState(bundle);
super.onSaveInstanceState(bundle);
}
}
我尝试使用webview的SaveInstanceState和restoreState,但没有成功。
将活动的启动模式更改为SingleInstance,同时在清单中声明它。它应该可以工作。
我的目的是确保任务中的根活动在任何情况下都只有一个实例。所以我设置了android:launchMode=“singleTask”,它在大多数情况下都能正常工作。 但是,如果我快速地将任务切换到其他人并多次返回,启动模式设置似乎会失去效果。我观察到,在销毁前一个实例之前,创建了一个新的活动实例,如下面捕获的日志所示。 请任何人帮助提供一个完美的解决方案,以确保在任何情况下都只使用一个根活动实例?
我重新启动服务器和浏览器,因此没有会话数据 我去www.someurl。com公共访问页。我的控制器用这个HttpSession session=request给我一个会话。getSession(true) <李> 我点击一个指向www.someurl的平面锚链接。在新选项卡中打开的com/admin受限访问页面。Spring Security 3拦截了这一点,并对凭据提出了挑战。我成功登录 我返
1、 市场人员首先需要创建一个市场活动,访问【直播营销】,点击【+新建直播】进入新建直播页面; 2、在新建直播页面完善直播标题、直播封面、直播开始时间、结束时间、讲师,根据需要选择直播平台: 纷享合作直播平台:目前合作直播平台为微吼,无需开通微吼账号,在线充值流量即可创建微吼直播间进行直播; 其他直播平台:企业内部自己的直播平台,也可通过营销通收集直播报名信息到CRM</br> 接下来以选择纷享合
我是Android Studio的新手,我一直在寻找答案,但不幸的是,我无法做到。我在创建新时遇到问题 我的Android Studio和我之前观看的视频的对比: 我已经试过右键单击另一张照片上的确切内容,并在每个文件夹中的任何位置单击鼠标右键,但仍然找不到新的
1. 创建会议活动 访问【会议营销】,点击【+新建会议】进入新建市场活动-会议销售页面; 在新建会议页面填写会议活动名称、展示封面、开始时间、结束时间、地点等 根据会议需要在会议详情中添加会议简介、嘉宾介绍、日程安排、会议须知等,帮助参会人员更快的了解会议主题及注意事项; 保存完成新建会议后会进入会议概览页面; 2. 完成报名设置 在会议下访问【报名设置】,为当前会议设置好报名内容以及确认是否开启