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

Как запустить метод в Activity из BroadcastReceiver - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как раскрутить приложение - бесплатными методами? http://www.cyberforum.ru/android-dev/thread1267753.html
Запрограммировал логическую игру Быки и Коровы(для себя не для зарабатывания денег, просто попробовать_, выложил ее на маркет https://play.google.com/store/apps/details?id=ru.orientiryug.BullsAndCows И естественно никто эту игру не скачивает. Почитал много разных сайтов, много форумов и все говорят только то, что приложение можно раскрутить нормально, только вкладывая деньги в рекламу, ну там...
Android Динамический размер ImageView Здравствуйте. У меня есть xml файл с ImageView, в который я загружаю изображение из интернета (с помощью Picasso) добавляю его в лейаут. Изображения могут и быть разных размеров, следовательно, ImageView должен подгоняться под картинку. Мне нужно, чтобы ширина ImageView была по ширине родителя, а высота подгонялась автоматически. Как это можно правиль реализовать? http://www.cyberforum.ru/android-dev/thread1267629.html
Android Не создается фрагмент
При запуске приложения отображается фрагмент (fragment1) этот фрагмент имеет кнопку при нажатии на которую запускается другой фрагмент (fragment2), очередь должен запускать другой экземпляр fragment1, но этого не происходит! Запускается снова fragment1, который отработал при старте приложения. Вот код запуска второго fragment1 из fragment2. private void load(String linkPart1, String...
Android Какого размера нужно создавать иконку приложения?
Какого размера нужно создать иконку приложения в Android? Я знаю, что для загрузки на Google Play нужна иконка 512x512, но, можно ли потом из этой иконки получить остальные нужных размеров? А из какой можно?
Android Анимация прозрачности от центра до границ http://www.cyberforum.ru/android-dev/thread1267257.html
Всем привет! Возникла проблема при работе с анимацией, необходимо сделать анимацию, чтоб прозрачность уменьшалась от центра вьюхи до границ. <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator"> <alpha android:fromAlpha="0.2" android:toAlpha="1.0" android:duration="500"/> </set>...
Android Как запустить приложение после обновления Добрый день! делаю обновление приложения, скачиваю apk и вот так потом его запускаю на установку Intent installApp = new Intent (Intent.ACTION_INSTALL_PACKAGE); installApp.setData (Uri.fromFile(new File(applicationContext.getFolderUpdate()+"app-release.apk"))); installApp.putExtra (Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); installApp.putExtra... подробнее

Показать сообщение отдельно
Agassy
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 5

Как запустить метод в Activity из BroadcastReceiver - Android

03.10.2014, 16:16. Просмотров 993. Ответов 2
Метки (Все метки)

Здравствуйте!!!
Все до банальности просто и повторяется, по кругу
Новичок, увлекся Java & Android...
Пытаюсь изобразить приложения первого этапа - при вхождения в сектор, центр которого определен географическими координатами и имеет определенный радиус, срабатывает оповещение и уменьшается счетчик, в соответствии с временем нахождения в секторе.

Оповещение срабатывает, счетчик не как не запускается...
Помогите, пожалуйста преодолеть барьерчик!

MainActivity
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
public class ProximityAlertActivity extends Activity {
    private static final long POINT_RADIUS = 50;               // in Meters
    private static final long PROX_ALERT_EXPIRATION = -1; // It will never expire
    private static final String PROX_ALERT_INTENT = "com.androidmyway.demo.ProximityAlert";
    private LocationManager locationManager;
    private EditText latitudeEditText;
    private EditText longitudeEditText;
    private Button addAlertButton;
    
    TextView tvtextCounterLive;
    
    double counterLive = 100.00;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_proxymity);
 
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            tvtextCounterLive = (TextView) findViewById(R.id.textCounterLive);
            latitudeEditText = (EditText) findViewById(R.id.point_latitude);
            longitudeEditText = (EditText) findViewById(R.id.point_longitude);
            addAlertButton = (Button) findViewById(R.id.add_alert_button);
 
            addAlertButton.setOnClickListener(new OnClickListener() {
                  public void onClick(View v) {
                      
                      addProximityAlert();
                  }
            });
 
    }    
 
 // запускаем таймер и изменение счетчика жизни 
    public void startTimer(){
        Timer myTimer = new Timer();
        myTimer.schedule(new TimerTask() {
 
    @Override
    public void run() {
        ProximityAlertActivity.this.runOnUiThread(new Runnable() {
            public void run() {
                counterLive-=0.15;
                tvtextCounterLive.setText(" " + String.format("%1$.2f", counterLive) + "%");
            }
        });
    }
}, 0, 2500);
    }
    
 // останавливаем таймер и изменение счетчика жизни
 //   public void stopTimer(){ } 
 
    
    public void showCounterLive(){
        tvtextCounterLive.setText(" " + counterLive + "%");
}
    
    
    private void addProximityAlert() {
           double latitude = Double.parseDouble(latitudeEditText.getText().toString());
           double longitude = Double.parseDouble(longitudeEditText.getText().toString());
           Log.d(getClass().getSimpleName(),"latitude = "+latitude);
           Log.d(getClass().getSimpleName(),"longitude= "+longitude);
           Intent intent = new Intent(PROX_ALERT_INTENT);
           PendingIntent proximityIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
           locationManager.addProximityAlert(
                  latitude,                          // the latitude of the central point of the alert region
                  longitude,                        // the longitude of the central point of the alert region
                  POINT_RADIUS,                // the radius of the central point of the alert region, in meters
                  PROX_ALERT_EXPIRATION, // time for this proximity alert, in milliseconds, or -1 to indicate no  expiration
                  proximityIntent                // will be used to generate an Intent to fire when entry to or exit from the alert region is detected
           );
 
           IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT);
           registerReceiver(new ProximityIntentReceiver(), filter);
           Toast.makeText(getApplicationContext(),"Точка добавлена!",Toast.LENGTH_SHORT).show();
    }     
}
BroadcastReceier
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
public class ProximityIntentReceiver extends BroadcastReceiver {
       private static final int NOTIFICATION_ID = 1000;
       
       
       @SuppressWarnings("deprecation")
       @Override
       public void onReceive(Context context, Intent intent) {
 
           String key = LocationManager.KEY_PROXIMITY_ENTERING;
        
           Boolean entering = intent.getBooleanExtra(key, false);
           if (entering) {
                       Toast.makeText(context, "Вошли в сектор!", Toast.LENGTH_LONG).show();
              }else {
                       Toast.makeText(context, "Вышли из сектора!", Toast.LENGTH_LONG).show();
              }
              NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
 
              Intent notificationIntent = new Intent(context, ProximityAlertActivity.class);
              PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
              Notification notification = createNotification();
              notification.setLatestEventInfo(context, "Вошли в ZONE51", "You are near your point of interest.", pendingIntent);
 
              notificationManager.notify(NOTIFICATION_ID, notification);
      }
 
 
    private Notification createNotification() {
              Notification notification = new Notification();
              notification.icon = R.drawable.ic_launcher;
              notification.when = System.currentTimeMillis();
              notification.defaults |= Notification.DEFAULT_VIBRATE;
 
              return notification;
        }
}
Пробовал работать разные варианты "в лоб" - не заработало
Java
1
2
3
4
5
6
7
8
9
10
11
           Boolean entering = intent.getBooleanExtra(key, false);
           if (entering) {
 
                     Toast.makeText(context, "Вошли в сектор!", Toast.LENGTH_LONG).show();
                  //Вариант I   
                          //startTimer();
                  //Вариант II
                          // ProximityAlertActivity on = new ProximityAlertActivity ();
                          // startTimer.on();
                                 
              }
Пока читаю инет...если не сложно намекните, куда копать, первый раз с BroadcastReceiver Имею дело ...

Заранее благодарен!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru