AliasActivity와의 작별
AliasActivity
과 작별을 고해야 할 때였습니다. 잠깐, 그 수업에 대해 몰랐습니까? 안심하세요. 혼자가 아닙니다. 😎 지금은 사라졌지만(글쎄, 일종의, 확실히 여전히 코드베이스에 있습니다), 어떻게 사용되었는지 살펴보겠습니다. 그리고, 지금 하는 일.API 레벨 1부터 있었던 클래스의 아이디어는
another activity (and then finishes itself) based on information
in its component's manifest meta-data. This is a simple way to
implement an alias-like mechanism. To use this activity, you
should include in the manifest for the associated component an
entry namedandroid.app.alias
. It is a reference to an XML
resource describing an intent that launches the real
application.
documentation을 참조하십시오.
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.alias"
android:resource="@xml/alias" />
</activity>
위는 매니페스트에서 해당 XML 파일을 참조한 방법입니다. 파일 자체는 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<alias xmlns:android="http://schemas.android.com/apk/res/android">
<intent
android:targetClass="com.thomaskuenneth.aliasactivitydemo.MainActivity2"
android:targetPackage="com.thomaskuenneth.aliasactivitydemo" />
</alias>
별칭 활동 구현의 소스는 다음과 같이 간단할 수 있습니다.
package com.thomaskuenneth.aliasactivitydemo
import android.app.AliasActivity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AliasActivity() {
}
대신 호출되는 활동은 모든 활동입니다.
package com.thomaskuenneth.aliasactivitydemo
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class MainActivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
이 작은 데모의 소스 코드는 GitHub에 있습니다.
이제 클래스가 더 이상 사용되지 않으므로 대신 무엇을 하시겠습니까? 그건 그렇고, API 레벨 1 이후로
<activity-alias>
에 포함된 매니페스트 태그 <application>
이 있습니다. 그것은 described으로alias for an activity, named by the
targetActivity
attribute.
The target must be in the same application as the alias and it
must be declared before the alias in the manifest.
그래서 갖는 대신에
<activity android:name=".MainActivity">
<intent-filter>
MainActivity
이 AliasActivity
으로 확장된 곳에서 이제 쓸 수 있습니다.<activity-alias android:name=".MainActivity"
android:targetActivity=".MainActivity2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
클래스 또는 매니페스트 태그를 사용했습니까? 그렇다면 왜? 그렇지 않다면: 왜? 🤣 댓글로 여러분의 생각을 공유해주세요.
Reference
이 문제에 관하여(AliasActivity와의 작별), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tkuenneth/farewell-to-aliasactivity-11pe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)