小编she*_*röm的帖子

Git实验分支还是单独的实验存储库?

我正在开发一个Android应用程序,并且在整个开发周期中一直在使用Git。现在,我想构建并发布实验性功能,供人们试用和安装,同时仍将原始,稳定的应用程序安装在其设备上。

现在,这意味着我需要使用不同的包名称,这将更改开发项目中的一些基本文件。我还想有一个单独的图标,以清楚地区分应用程序。

我不习惯Git,不知道该采取哪种方法:我应该创建一个实验分支,当我想做一些实验室工作时该分支从我分支出来,还是应该将此实验工作作为单独的git-repo保留?

无论哪种方式,我的实际流程都存在一些问题。

  • 如果我做一个实验分支,我不想(错误地?)将软件包名称的更改和明确分开的实验细节与master分支合并;我只想合并代码的工作部分,而无需进行额外的修改。
  • 如果我做一个单独的仓库,考虑到相同的希望而不是替换,我如何合并从实验仓库到主仓库的变更。包名称和图标?

git android

3
推荐指数
1
解决办法
2555
查看次数

当蓝牙连接状态改变时防止 onDestroy

目标

  • 如果已连接的蓝牙设备断开连接,并且 Activity 已在运行,请关闭该 Activity

问题

  • 当蓝牙设备连接状态通过BluetoothAdapterProperties: CONNECTION_STATE_CHANGE发生变化时,看起来就像创建了一个新的 Activity 或重新启动了当前的 Activity。

代码中没有任何内容可以侦听和/或应对蓝牙连接状态更改做出反应。

问题体现在使用 BroadcastReceivers 上,而 BroadcastReceivers 又使用意图启动 Activity。由于某种原因,活动在其生命周期中不断运行,产生新窗口,即使蓝牙连接的唯一变化是BluetoothAdapterProperties:CONNECTION_STATE_CHANGE

我仅在装有 Android N 的 Nexus 6P 上对此进行了测试。我还不知道此实现对任何其他设备意味着什么。但我至少需要让它在一台设备上运行。

更新

我做了相当多的实验,发现如果我不在AndroidManifest中注册BroadcastReceiver,调用onDestroy的问题就会消失。但是,我希望能够对蓝牙连接设备做出反应,以便我可以启动我的活动,然后处理输入。如果每次新设备连接/断开时活动都会被破坏,那么这根本不起作用。如果 BroadcastReceiver 已经在运行,那么让 BroadcastReceiver 完成该活动的原因是什么?我可以控制该行为吗?

更新2

我还可以得出结论,使用此方法禁用静态声明的 BroadcastReceiver /sf/answers/457055581/不会改善情况。一旦 Manifest-BroadcastReceiver 从 Android 捕获 ACL_CONNECTED 意图并启动我的自定义活动,当连接状态发生变化时(通常就在 ACL_DISCONNECTED 之前),它就会无情地调用 onDestroy 。我是否在清单中声明了 ACL_DISCONNECTED 并不重要。只要我让接收器侦听 ACL_CONNECTED 意图并基于此启动我的 Activity,当连接状态发生变化时就会调用 onDestroy。太令人沮丧了。

显现

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.VIBRATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter> …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-intent android-bluetooth

3
推荐指数
1
解决办法
2496
查看次数