首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务未运行:应用程序关闭且智能手机屏幕关闭

服务未运行:应用程序关闭且智能手机屏幕关闭
EN

Stack Overflow用户
提问于 2015-12-11 22:55:35
回答 2查看 101关注 0票数 0

我创建了一个应用程序:启动服务(SmartphoneListener)的活动(MainActivity)。

活动

代码语言:javascript
复制
public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = new Intent(this,SmartphoneListener.class);
    startService(intent);
}
}

该服务用于检测(在智能手机上)与智能手表的连接是否断开。

服务

代码语言:javascript
复制
public class SmartphoneListener extends WearableListenerService {

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    powerManager = (PowerManager) getSystemService(POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyWakelockTag"); //Service running even if the screen is off.
    wakeLock.acquire();
    return START_STICKY;
}

@Override
public void onPeerDisconnected(Node node){
    Toast.makeText(getApplicationContext(),"Communication with smartwatch lost",Toast.LENGTH_SHORT).show();
    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    registerReceiver(mIntentReceiver, filter);
}

private BroadcastReceiver mIntentReceiver = new BroadcastReceiver(){
    public void onReceive(Context context, Intent intent) {
        //
    }
};
...
}

如果我的应用程序是打开的,并且智能手机屏幕关闭,我可以检测到我是否与smartwatch失去了连接(执行mIntentReceiver代码)。然后,如果我关闭我的应用程序,智能手机屏幕关闭,我无法检测到我是否失去了与智能手表的连接( mIntentReceiver代码不会执行)。我也不知道原因。

EN

回答 2

Stack Overflow用户

发布于 2015-12-11 23:22:36

尝试添加

代码语言:javascript
复制
filter.addAction(Intent.ACTION_SCREEN_OFF);

发送到您的IntentFilter。希望它能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2015-12-12 00:39:22

你在回复我的评论时解释说,你正在通过从最近的任务列表中滑动来“关闭”应用程序。此操作会导致终止应用程序的进程。由于您在服务中从onStartCommand()返回START_STICKY,因此系统将在新进程中创建您的应用程序的新实例,并调用onStartCommand()重新启动您的服务。这是您的应用程序中唯一的条目。不会重新创建任何活动。我对Wear知之甚少。我猜你的应用程序会执行一些配置处理来定位和连接到节点。如果该处理是在某些活动中完成的,例如启动活动,则在重新创建应用程序以重新启动服务时将不会执行该处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34226308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档