Activities

Intro

ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π»ΡŽΠ±Ρ‹ΠΌΠΈ прилоТСниям, Ссли установлСны Ρ„Π»Π°Π³ΠΈ exported ΠΈ enabled. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΎΠ±Ρ…ΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (Ссли Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСно Ρ‡Ρ‚ΠΎ ΠΈΠ»ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΏ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, exported=false, Π½ΠΎ Ссли объявлСн intent-filter, Ρ‚ΠΎ true. Активити ΠΌΠΎΠ³ΡƒΡ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ссли ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ состояниС прилоТСния. НапримСр, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ находится Π² Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ состоянии, ΠΏΠ΅Ρ€Π΅ΠΏΡ€Ρ‹Π³ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° LockScreen.

Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ

Бостояния Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ

4 состояния:

  • Active Когда Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ взаимодСйствуСт с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, находится Π½Π° Π²Π΅Ρ€Ρ…Ρƒ стСка Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Android ΡƒΠ±ΡŒΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСрвисы ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π² стСкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π² работоспособном состоянии.

  • Paused На Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π½Π΅Ρ‚ фокуса, Π½ΠΎ ΠΎΠ½Π° Π²ΠΈΠ΄Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

  • Stopped Активити Π½Π΅ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½ΠΎ ΠΎΠ½Π° Π΅Π΅ хранится Π² памяти ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅, Π² Π½Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ - Ρ‚ΠΎΠΆ.

  • Inactive Активити Π΄ΠΎ запуска ΠΈ послС убийства Π΅Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объявлСния Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ

Π’ ΠΊΠΎΠ΄Π΅:

package com.zfr.emapt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        /*
        Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅, Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²
        app/build.gradle Π² самый Π²Π²Π΅Ρ€Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ kotlinx:
        
            plugins {
                id 'kotlin-android-extensions'
            }
        ΠΈΠ»ΠΈ
            apply plugin: 'kotlin-android-extensions'
            
        */  
        button_test.setOnClickListener {
            // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия
        }
    }
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска Activity

public static Intent getStartingIntent(Context context, String userId) {
 Intent i = new Intent(context, UserDetailsActivity.class);
 i.putExtra(EXTRA_USER_ID, userId);
 return i;
}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ userId - строку. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Если Π±Ρ‹ принимался ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎ это ΠΏΠ»ΠΎΡ…ΠΎ (Ρ‡Π΅ΠΌ?)

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования intent-filters для ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ

На сторонС Activity

.. onCreate(Bundle bundle) {
 Intent intent = getIntent()
 intent.getString(...)
}

ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° Intent для Activity:

Intent(MainActivity.this, TargetActivity.class)

Бписок Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ

adb shell dumpsys activity activities

Last updated