在浏览Stackoverflow中的问题和答案后,我有点困惑WakefulIntentService.我只想获得一些关于这个主题的知识,以确保我的理解是正确的,如果我错了,请随时纠正我.
我构建了一个小应用程序,我使用的背景Service可以在用户摇动手机时继续播放音乐.我在设备锁定并且屏幕关闭后进行了测试,并且按预期工作.
我从这个论坛听到的消息,一旦设备进入睡眠状态,服务可能会关闭.真的吗?在我的情况下,它始终有效,我错过了什么?
有什么需要WakeFulIntentService?我们什么时候需要使用WakefulIntentService?
我尝试在a中运行一个计时器Service,虽然设备已锁定,屏幕已关闭,我的计时器正在运行,我可以肯定地说.因为我曾经在计时器跳闸时收到通知.
我想为我的设备创建一个StandBy活动,到目前为止,我创建了一个活动,在调用时将关闭我的显示.
代码如下:
public class MainActivity extends Activity {
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private WakeLock mWakeLock;
private Button button;
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
// Get an instance of the SensorManager
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// Get an instance of the PowerManager
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
// Get an instance of the WindowManager
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay();
setContentView(R.layout.activity_main); …Run Code Online (Sandbox Code Playgroud) 我的目标是API 17,并使用下面的代码启用WiFi直连(P2P).一切正常(找到并连接到同行),但是当没有使用WiFi-direct时不断关闭(看起来它取决于Android手机 - 我的约3-5分钟)这也将关掉WiFi让我失去了互联网连接.
我有一个接收器,可以检测P2P状态何时发生变化以重新打开它,但即使没有连接到任何对等端,也能保持P2P始终处于开启状态.
是否有可能继续ping Android手机本身才能做到这一点?还有其他建议吗?
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {
// UI update to indicate wifi p2p status.
int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
// Wifi Direct mode is enabled
activity.setIsWifiP2pEnabled(true);
} else {
activity.setIsWifiP2pEnabled(false);
activity.resetData();
}
Run Code Online (Sandbox Code Playgroud) android ×3
wakelock ×2
android-wifi ×1
ethernet ×1
screen-off ×1
service ×1
wifi-direct ×1
wifip2p ×1