我在 Android 中创建了一个 Appwidget,并提供了两个按钮,但我发现在与它交互的过程中,有时会调用 UPDATE 信号,有时则不会。
以下是ClockWidgetWorker的实现
class ClockWidgetWorker (pContext: Context?, pWorkerParams: WorkerParameters?) : Worker(pContext!!, pWorkerParams!!) {
companion object {
fun getCurrentTime (pContext : Context) : String
{
Log.d("AppWidget", "Inside getCurrentTime")
val views = RemoteViews (pContext.packageName, R.layout.widget_layout)
val sdf = SimpleDateFormat ("HH:mm:ss", Locale.getDefault ())
val update_time = sdf.format (Date ())
views.setTextViewText(R.id.time_text, update_time)
AppWidgetManager.getInstance (pContext).updateAppWidget (ComponentName (pContext, ClockWidgetProvider::class.java), views)
return update_time
}
}
override fun doWork () : Result
{
Log.d("AppWidget", "Inside doWork")
val context: Context = applicationContext
getCurrentTime(context)
return Result.success …Run Code Online (Sandbox Code Playgroud) 我在构建过程中生成了一个 .so 文件,并将其添加到“jnilibs”文件夹内的正确位置,但遇到错误,指出“无法找到带有不满足链接错误的本机函数实现”
// This is my .kt file
import abc.def.xyz
class MainActivity : Activity () {
public external fun MyNativeFunction() : Boolean
override
fun onCreate (pSavedInstance : Bundle?)
{
super.onCreate (pSavedInstance)
// Calling my Native function
val check = MyNativeFunction ()
}
}
// This is my .cpp file
extern "C" JNIEXPORT jboolean JNICALL
Java_abc_def_xyz_MainActivity_MyNativeFunction () noexcept
{
// .... some code written here
return true;
}
Run Code Online (Sandbox Code Playgroud)
它无法找到该函数的实现“MyNativefunction”。即使签名是正确的,但找不到我错在哪里。
当我尝试从生成的 .so 文件中提取符号时,我无法在 .so 文件中看到此函数。有人能告诉我哪里出了问题吗?
如有帮助,将不胜感激。
我们希望在 Android 的后台持续运行服务。我们还知道,Android 从 API 26 开始引入了后台执行限制,其中明确提到,一旦应用程序进入后台或向上滑动,服务将在非常短的时间内被终止,我们在尝试时也观察到了同样的情况。
但目前,如果我们使用开发者模式查看正在运行的服务窗口列表,我们会发现很少有像 Instagram 或 Facebook 这样的流行应用程序,我们可以看到它会在后台运行,并且如果我们滑动应用程序也不会被杀死。
即使我们考虑前台服务,它们也需要显示通知,但在这种情况下,这些应用程序不会显示任何前台服务通知。因此,我们认为他们不使用前台服务。
Android 有什么方法可以提供这些类型的体验,以便我什至可以为我的应用程序做到这一点?
有人能帮我吗?感谢帮助。