Java Android如何在使用webView时保持屏幕打开
首先,我不熟悉Android和Java编程。也就是说,我不确定我想做的事情是否能够实现。我希望能够使用webView加载url,并使用keep_screen_on防止屏幕变暗 下面是我正在使用的代码。我可以加载网页,但屏幕在大约一分钟后变暗 感谢您的帮助 这是Java页面:Java Android如何在使用webView时保持屏幕打开,java,android,Java,Android,首先,我不熟悉Android和Java编程。也就是说,我不确定我想做的事情是否能够实现。我希望能够使用webView加载url,并使用keep_screen_on防止屏幕变暗 下面是我正在使用的代码。我可以加载网页,但屏幕在大约一分钟后变暗 感谢您的帮助 这是Java页面: package com.mysite; import com.mysite.R; import android.app.Activity; import android.os.Bundle; import android.v
package com.mysite;
import com.mysite.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.webkit.WebView;
public class MainActivity extends Activity {
public WebView myWebView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
这是我的清单页面:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mysite"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.mysite.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
有3种可能的方法,其中两种更可取,功能相似。您使用的只是个人偏好。另一个更具攻击性,可用于希望系统其他部分保持清醒(如处理器)的其他场景 方法如下: 通知
onCreate中的窗口管理器
,您希望屏幕保持打开状态
下面的活动使用窗口管理器使屏幕保持打开状态,您不必担心如何管理它,它将在活动生命周期内保持打开状态。屏幕可能会变暗,但无法关闭。清单中不需要任何权限
package com.mysite;
import com.mysite.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.webkit.WebView;
public class MainActivity extends Activity {
public WebView myWebView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
}
}
WakeLock
–用于关键下载或您绝对不希望Android系统关闭的事情
此活动将获得唤醒锁,以在进行此活动时保持屏幕打开。这需要您的清单中的权限。管理唤醒锁并在完成时(在onPause中)始终释放它们非常重要
声明屏幕在XML布局中保持打开状态
此活动使用我们正在使用的XML布局文件中的标志保持屏幕处于打开状态。android:keepScreenOn=“true”不需要清单权限
/**
* This activity keeps the screen on using a flag in the XML layout file we are using 'android:keepScreenOn="true"'
* We don't use a wakelock so no manifest permissions are needed
*
* @author chirag.saga
*
*/
public class MainActivity extends Activity {
public WebView myWebView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
}
}
还有myWebView.setKeepScreenOn(true);可以使用。其中,手动操作
WakeLock
对于所需的行为来说是最糟糕的,因为您需要WAKE\u LOCK
权限,并且更容易出错。
/**
* This activity keeps the screen on using a flag in the XML layout file we are using 'android:keepScreenOn="true"'
* We don't use a wakelock so no manifest permissions are needed
*
* @author chirag.saga
*
*/
public class MainActivity extends Activity {
public WebView myWebView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
}
}