Kill SDK
Completely terminate the SDK
KindlySDK.kill()The kill() method completely terminates the SDK and clears all state. This is more destructive than endChat() which only disconnects the chat session.
What kill() does
When you call kill(), the SDK will:
- ๐ Disconnect the chat session (same as endChat())
- ๐งน Clear all session data including messages and context
- โก Reset SDK initialization state
- ๐ Clear bot key and authentication
- ๐จ Reset configuration and themes
- ๐ก Emit termination events for cleanup
After calling kill()
After calling kill(), the SDK returns to an uninitialized state:
- โ You cannot call launchChat() or other SDK methods
- โ You must call start() again before using any SDK functions
- โ All configuration (themes, permissions, etc.) needs to be set up again
Usage Examples
Complete SDK Shutdown
// Terminate the SDK completely
KindlySDK.kill()
println("โ
SDK completely terminated")
// SDK is now in uninitialized stateSwitch to Different Bot (Alternative Method)
// Method 1: Using kill() for explicit control
KindlySDK.kill()
// SDK is now uninitialized - must call start() again
KindlySDK.start(
application = this,
botKey = "new-bot-key",
languageCode = "en",
market = "YOUR_MARKET"
)
KindlySDK.launchChat(context = this)
// Method 2: Automatic switching (recommended)
KindlySDK.start(
application = this,
botKey = "new-bot-key", // SDK handles cleanup automatically
languageCode = "en",
market = "YOUR_MARKET"
)
KindlySDK.launchChat(context = this)When to Use kill() vs endChat()
Use kill() when:
- ๐ App shutdown: Terminating the app or major state changes
- ๐ Complete reset: Need to clear all SDK state and start fresh
- ๐ Error recovery: Recovering from SDK errors or corruption
- ๐งช Testing: Ensuring clean state between test runs
Use endChat() when:
- ๐ฌ End conversation: User finishes chatting but may return later
- ๐ Temporary disconnect: Preserving SDK state for quick reconnection
- ๐ฏ Normal flow: Standard chat lifecycle management
Comparison
Method | Session | SDK State | Bot Key | Config | Next Action |
|---|---|---|---|---|---|
endChat() | โ Cleared | โ Preserved | โ Preserved | โ Preserved | launchChat() |
kill() | โ Cleared | โ Reset | โ Cleared | โ Reset | start() required |
Synchronous Operation
The kill() method completes synchronously, ensuring all cleanup is finished before returning:
KindlySDK.kill()
// Safe to reinitialize immediately after this line
KindlySDK.start(
application = this,
botKey = "new-bot-key",
languageCode = "en",
market = "YOUR_MARKET"
)Best Practices
- Safe to call immediately after kill():
KindlySDK.kill()
// Immediately safe to reinitialize
KindlySDK.start(application = this, botKey = "new-bot", market = "YOUR_MARKET")- Use automatic bot switching instead of manual kill/start when possible:
// Preferred: Automatic cleanup
KindlySDK.start(application = this, botKey = "new-bot", market = "YOUR_MARKET")
// Instead of: Manual cleanup
KindlySDK.kill()
KindlySDK.start(application = this, botKey = "new-bot", market = "YOUR_MARKET")- Handle errors gracefully in production apps:
try {
KindlySDK.kill()
// Continue with app flow
} catch (e: Exception) {
Log.e("SDK", "Kill failed, but continuing", e)
}Thread Safety
The kill() method is thread-safe and can be called from any thread. However, subsequent SDK operations should follow the main thread requirements of the Android SDK.
For normal chat lifecycle management, prefer endChat() over kill().