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

BroadcastReceiver - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android В TextView записать все числа от 1 до 20 http://www.cyberforum.ru/android-dev/thread1733680.html
Всем добра... Нужно помощь. У меня есть число с 1 до count (например 20), мне нужно в TextView записать все числа с 1 до 20. Выглядит должна так: 1 2 3 4 5 6
Программирование Android Не открываются рисунки в гайдлайне, как исправить? Решил ознакомиться с советами по дизайну, ан нет, открываются фото-анимации на /design/spec/components/bottom-navigation.html#, во всех остальных разделах следующее (сайт при этом полностью... http://www.cyberforum.ru/android-dev/thread1733579.html
Загрузка данных из SQLite для каждого пункта ListView Программирование Android
Здравствуйте, у меня такая проблема, не могу сделать так что бы для каждого пункта списка выводилась соответствующая строка в БД в новой активити. Кто знает подскажите пожалуйста. Добавлено через...
функция currentTimeMilis Программирование Android
функция currentTimeMilis() возвращает текущее время в миллисекундах какой страны? И она вычисляет время относительно Гринвича(начало отсчета времени)?
Программирование Android Непонятное поведение многопоточного приложения http://www.cyberforum.ru/android-dev/thread1733170.html
Всем добрый день. Ввожу в курс дела: я пишу игру под android и мне потребовалась в игре небольшая система, которая будет рендерить пул объектов хранящийся в HashMap<Integer, Object>. Эта мапа...
Программирование Android Получить width и height картинки из ресурса Добрый день! Что то я уже запарился искать решение. А задача на вид элементарная: Есть cat - это id картинки из ресурса. Требуется получить ее размер (длину и ширину в пикселях); Бросил кнопку,... подробнее

Показать сообщение отдельно
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
14.05.2016, 12:11  [ТС]
Я хочу чтобы AlarmManager выполнил задачу через ресивер в определенную дату и время. Я протестировал следующим образом. Создал активити в ней определил AlarmManager и PendingIntent. Создал ресивер(в котором в методе onReceive() идет создание txt файла) и прописал его в манифесте. Дату запуска Alarmа задал через Calendar, но это почему то не работает. Вот код

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
import android.app.AlarmManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
 
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Calendar;
 
public class MainActivity extends AppCompatActivity {
 
Context context;
    final String LOG_TAG = "myLogs";
 
    NotificationManager nm;
    AlarmManager am;
    Intent intent1;
    Intent intent2;
    PendingIntent pIntent1;
    PendingIntent pIntent2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        context = MainActivity.this;
        //nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //am = (AlarmManager) getSystemService(ALARM_SERVICE);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        context = MainActivity.this;
        Calendar myAlarmDate = Calendar.getInstance();
        myAlarmDate.setTimeInMillis(System.currentTimeMillis());
        myAlarmDate.set(2016, 5, 14, 8, 00, 0);
 
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent _myIntent = new Intent(context, Receiver.class);
        _myIntent.putExtra("MyMessage","HERE I AM PASSING THEPERTICULAR MESSAGE WHICH SHOULD BE SHOW ON RECEIVER OF ALARM");
        PendingIntent _myPendingIntent = PendingIntent.getBroadcast(context, 123, _myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
 
        alarmManager.set(AlarmManager.RTC_WAKEUP, myAlarmDate.getTimeInMillis(),_myPendingIntent);
 
    }
}
ресивер

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
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
import android.util.Log;
 
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
 
public class Receiver extends BroadcastReceiver {
 
    final String LOG_TAG = "myLogs";
    NotificationManager nm;
    @Override
    public void onReceive(Context ctx, Intent intent) {
       // Log.d("Func", "onReceive");
        //Log.d("Func", "action = " + intent.getAction());
        //Log.d("func", "extra = " + intent.getStringExtra("extra"));
        BufferedWriter out;
        try {
 
            FileWriter fileWriter= new FileWriter(Environment.getExternalStorageDirectory().getPath()+"/tsxt.txt");
 
            out = new BufferedWriter(fileWriter);
 
            out.write("Your text to write");
 
            out.close();
 
        }catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Манифест

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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.alarm.user.alarmmanager">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <receiver
            android:name=".Receiver"
            android:enabled="true"
            android:exported="true" >
        </receiver>
 
    </application>
 
</manifest>
Не подскажете что я не так делаю? В чем моя ошибка? Как исправить чтобы через Alarm и ресивер в определенное время и дату создавался файл??

Добавлено через 2 минуты
Может активити с Alarmом просто система уничтожает(не дожидаясь определенной даты и времени). Поэтому он не сработал?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru