Как отправить данные на конкретное мероприятие, которое уже запущено?

1

Предположим, у нас есть два простых приложения, поэтому у нас есть два разных пакета. Каждый из этих пакетов имеет Activity, которая может быть запущена, нажав на значок приложения. Предположим, что эти два действия:

  • MyFirstActivity, который входит в пакет org.firstexample.firstactivity
  • MySecondActivity, который входит в пакет org.secondexample.secondactivity

Предположим, мы запустили активность MyFirstActivity, поэтому она запущена. Может ли MySecondActivity активность передавать данные непосредственно в MyFirstActivity деятельности?

Я хотел бы, чтобы два действия (которые находятся в разных пакетах) могли связываться друг с другом путем обмена данными.

Теги:
android-activity

2 ответа

1

если вы запускаете MySecondActivity из MyFirstActivity, используйте этот способ:

в деятельности MyFirstActivity:

Intent intent25 = new Intent(Intent.ACTION_MAIN).addCategory(
Intent.CATEGORY_LAUNCHER).setClassName("org.secondexample",
"org.secondexample.MySecondActivity").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_FROM_BACKGROUND).setComponent(new ComponentName("rg.secondexample",
"org.secondexample.MySecondActivity"));
Bundle bundle = new Bundle();
bundle.putString("Name", "test");
intent25.putExtras(bundle);
getApplicationContext().startActivity(intent25);

и в MySecondActivity oncreate()

Bundle bundle = this.getIntent().getExtras();
String name = bundle.getString("Name");
  • 0
    Хорошо, но если MySecondActivity в настоящее время работает?
  • 0
    как вы знаете, в Android только одно действие отображается для пользователя означает, что выполняется одновременно. если действие не выполняется, то оно может быть в состоянии onPouse или завершено.
Показать ещё 5 комментариев
0

Если вы хотите передавать данные, не возобновляя при уничтожении активности, тогда вам нужно сделать это для слушателя.

public class MyFirstActivity extends Activity implements OnDataChanged {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

}

@Override
public void onChange(int a) {
    Log.e("", "a : " + a);

}

}

MySecondActivity.java

public class MySecondActivity extends Activity {

private OnDataChanged mOnDataChanged;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sendData(10);
}

public interface OnDataChanged {
    public void onChange(int a);
}

private void sendData(int a) {
    mOnDataChanged.onChange(a);
}

}

MySecondActivity отправляет 10 в MyFirstActivity, выполнив прослушивание MySecondActivity...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню