Вы устанавливаете Constants.PLAYER_UI
на Handler
самого последнего созданного занятия. Итак, вот что происходит:
Home
, он создает Constants.PLAYER_UI
Handler
со ссылкой на Home
, которая затем вызывает правильный метод. GeneralPlayer
. Это сбрасывает Constants.PLAYER_UI
Handler
с GeneralPlayer
, созданным Handler
. Это содержит ссылку на GeneralPlayer
, поэтому она вызывает правильный метод. Home
. Однако onCreate()
не вызывается, поскольку Home
уже создан. Таким образом, Constants.PLAYER_UI
все еще ссылается на обработчик, созданный GeneralPlayer . Поэтому, когда этот метод вызывается (откуда-то еще, я бы предположил), он использует действие GeneralPlayer
, на которое он ссылался, и выводит сообщение GeneralPlayer
. Вам нужно, чтобы Handler
была константой? Вы можете использовать его как переменную экземпляра в действии, чтобы новый экземпляр создавался с каждым действием, а также уничтожался вместе с ним:
abstract class PlayerAbstractClass() : AppCompatActivity() {
private val playerUiHandler = Handler(object : Handler.Callback {
override fun handleMessage(msg: Message?): Boolean {
updateButtonUI()
return true
}
})
protected abstract fun updateButtonUI()
}
Таким образом, ваша Home
активность имеет свой собственный [ 1121] экземпляр, который он будет вызывать каждый раз, когда вы находитесь на Home
, и аналогично GeneralPlayer
будет иметь другой экземпляр playerUiHandler
, который вызывается, когда вы участвуете в этом действии. В качестве дополнительного бонуса вы больше не пропускаете Context
и держите ссылки на действия, которые должны были быть уничтожены. [Тысяча сто тридцать одна]
Для того, чтобы это было возможно, должен существовать поставщик git для PowerShell.
После быстрого поиска, похоже, существует что-то похожее, причудливое, но точно названное posh-git:
http://github.com/dahlbyk/posh-git
Набор сценариев PowerShell, которые обеспечить интеграцию Git/PowerShell
- Подсказка для репозиториев Git: подсказка в репозиториях Git может показать текущую ветку и состояние файлов (дополнения, изменения,
делеции) внутри.- Автозавершение с помощью табуляции: обеспечивает завершение с помощью табуляции для общих команд, когда используя git. Например.
git ch
-->git checkout
Использование
См. profile.example.ps1, чтобы узнать, как можно интегрировать завершение табуляции и/или подсказка git в свой собственный профиль. Вы также можете выбрать, будет ли расширенные команды git показаны в расширение вкладок или только простые/общие команды. По умолчанию просто.
Я записал этой небольшой PS "драгоценный камень", если шикарный мерзавец слишком много:
function co
{
param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[ArgumentCompleter({
param($pCmd, $pParam, $pWord, $pAst, $pFakes)
if ([string]::IsNullOrWhiteSpace($pWord)) {
return "master";
}
(git branch --format='%(refname:short)') | Select-String "$pWord"
})]
[string] $branch
)
git checkout $branch;
}
Я написал универсальный провайдер для PowerShell, поведение которого можно полностью реализовать в сценарии powershell. Это было бы идеальной отправной точкой для создания прототипа поставщика GIT, если он не существует (или умер, или его недостаточно).