Форум программистов, компьютерный форум CyberForum.ru

Класс ждет действия и "дарит" данные активности - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Данные не передаются из одной активности в другую http://www.cyberforum.ru/android-dev/thread1788843.html
Данные не передаются в другую активность... Вот код: Из: Intent inttt = new Intent(hhhhh.this, list.class); inttt.putExtra("vgh", login.getText().toString().length()); В: Toast.makeText(getApplicationContext(), getIntent().getIntExtra("vgh", 0), Toast.LENGTH_SHORT).show(); Я и не знаю, что добавить... Я все проверил, активности введены правильно
Android Custom Fonts in widget Столкнулся с такой проблемой, что не могу сделать шрифт для виджета в приложении. Как для обычного TextView и так знаю, но для виджета делается по-другому, инфа сотка. Подскажите, что и как делать @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds) { super.onUpdate(context,... http://www.cyberforum.ru/android-dev/thread1788787.html
Android 2.3 поддерживает opengl 2 ? Android
зависит ли это от версии андроида?
Из миллисекунд в DateTime Android
Получаю миллисекунды long currentTime = System.currentTimeMillis(); Когда делаю обратно то получается 1970 год.. Как сделать чтобы было нормальное наше время?
Android Перенос Java-кода на платформу Android http://www.cyberforum.ru/android-dev/thread1788583.html
Всем доброе утро! Есть неплохой код. Но мне оказалось этого мало и хочу перенести на платформу Android с помощью Android Studio. Подскажите пожалуйста как перенести?
Android Https и http Всем привет! Нашел класс для отправки post - запроса на сайт, вот вопрос такой https здесь будет поддерживаться автоматически или как? Сертификат настоящий с проверкой. public class http { public static String DomainURL = "http://192.168.0.177/"; String response = ""; public String http_query(String requestURL, HashMap<String, String>... подробнее

Показать сообщение отдельно
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
02.08.2016, 23:20     Класс ждет действия и "дарит" данные активности
Для того, чтобы грамотно обыграть то, что ты говоришь тебе нужен класс, который будет знать "все о всех", с которым будет взаимодействовать твой сервис, обычно это класс - наследник Application, создаешь класс App от Application
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
 
public class App extends Application {
    private static Context context;
    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
    }
 
    public static boolean sendLocalBroadcastMessage(String action,String result) {
        Intent sendIntent = new Intent(action);
        sendIntent.putExtra("Result",result);
        return LocalBroadcastManager.getInstance(context).sendBroadcast(sendIntent);
    }
}
Теперь делаешь в сервисе то, о чем я упомянул:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class XmppService extends Serviceimplements Handler.Callback{
    private static Handler mHandler;
 
    /**
     * Public methods
     */
    @Override
    public void onCreate() {
 
        HandlerThread mThread = new HandlerThread("ServiceThread",
                android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
        mThread.start();
        mHandler = new Handler(mThread.getLooper(), this);
    }
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        int method = 0;
        if (intent != null) {
            method = intent.getIntExtra(KEY_METHOD, -1);
        }
        mHandler.sendMessage(mHandler.obtainMessage(method, intent));
 
        return START_STICKY;// START_NOT_STICKY;
    }
 
    @Override
    public boolean handleMessage(android.os.Message msg) {
        int method = msg.what;
        try {
            switch (method) {
 
                case METHOD1: {
 
                    Intent intent = (Intent) msg.obj;
                    username = intent.getStringExtra(KEY_USERNAME);
                    ...
                    App.sendLocalBroadcastMessage("Операция1",result);
                }
 
                case METHOD2: {
 
                   ...
                App.sendLocalBroadcastMessage("Операция2",result);
                    break;
                }
 
                
                default:
 
                       break;
            }
 
 
 
        return false;
 
  }
В методе
Java
1
App.sendLocalBroadcastMessage("Операция1",result);
ты возвращаешь результат в класс App
после всех действий

Теперь во всех активити ты регистрируешь прослушку и метод ,который будет вызван при передаче из сервиса:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                
            }
        },Операция1);
 
        LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
 
            }
        },Операция2);
В цикле вызывать sendLocalBroadcastMessage не получится, но ты можешь пользоваться postDelayed у Handlera

Класс App нужно прописать в манифесте у application:
Java
1
2
3
 <application
        android:name=".App"
        ...
 
Текущее время: 19:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru