公共类HttpHelper扩展了AsyncTask> {ArrayList list = new ArrayList();
@Override
protected ArrayList<String> doInBackground(String... urls) {
// TODO Auto-generated method stub
String result="";
for(String url:urls)
{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try
{
HttpResponse response = client.execute(request);
InputStream in = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = null;
StringBuffer sb = new StringBuffer();
while((line = br.readLine())!=null)
{
sb.append(line+"\n");
}
in.close();
result = sb.toString();
String pageSource = new String(result);
int startindex = pageSource.indexOf("pdf_doc/");
String str="";
String []temp; …Run Code Online (Sandbox Code Playgroud) 嗨!
我在复制PendingIntents方面遇到了麻烦.我的应用程序具有从应用程序onCreate开始的服务,执行一些异步任务并自行停止.问题是,在每一个应用程序开始我从DB在AlarmManager一套新PendingIntents的(完全一样),但他们不取消以前,即使FLAG_CANCEL_CURRENT.我通过"adb shell dumpsys alarm"来确定这个,
这是一个异步任务的onPostExecute:protected void onPostExecute(Cursor c){
while (c.moveToNext())
{
int _id = c.getInt(c.getColumnIndex(Maindb._ID));
long remind_timestamp = c.getLong(c
.getColumnIndex(Maindb.REMIND_TIMESTAMP));
String remind_name = c.getString(c.getColumnIndex(Maindb.NAME));
String remind_description = c.getString(c
.getColumnIndex(Maindb.DESCRIPTION));
Log.i("Service reminders : id = " + _id + "; REMIND_TIMESTAMP="
+ remind_timestamp + "; NAME = " + remind_name
+ "; DESCRIPTION=" + remind_description);
Intent myIntent = new Intent(ReminderService.this,
AlarmReceiver.class);
myIntent.putExtra(RemindDialog.REMIND_DIALOG_ID, _id);
myIntent.putExtra(RemindDialog.REMIND_DIALOG_NAME, remind_name);
myIntent.putExtra(RemindDialog.REMIND_DIALOG_DESCRIPTION,
remind_description);
myIntent.putExtra(RemindDialog.REMIND_DIALOG_TIMESTAMP,
remind_timestamp);
pendingIntent = PendingIntent.getService(ReminderService.this,
_id, myIntent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = …Run Code Online (Sandbox Code Playgroud) 我正在listview使用以下代码设置项目的颜色parent.getChildAt(itemPosition).setBackgroundColor(Color.parseColor("#FF9494"));
我写的这段代码OnItemClickListener.
设置颜色后,我希望将此颜色保持4秒钟,然后将项目的颜色恢复为之前的颜色(比如白色).
我尝试在UI线程上进行睡眠,但我知道这不是一个正确的方法.
任何人都可以建议我如何实现这一目标?
我一直在阅读有关发射模式的文档,有一点我没有理解.该文档说singleTask活动始终是堆栈的根:
相比之下,"singleTask"和"singleInstance"活动只能开始一项任务.它们始终位于活动堆栈的根部.此外,设备一次只能保存一个活动实例 - 只有一个这样的任务.
但是:如果你看一下图4中的这部分文档,你会看到当Activity 2启动Activity Y(将该任务置于前台)时,Activity Y已经位于任务的顶部并且将位于当前的顶部任务,而不是根.
我在这个模拟应用程序中尝试了这个场景,当我创建singleTask活动时,它总是创建一个新任务.但是,如果唯一的实例已经存在,则它将完成高于此实例的所有活动,因此唯一的实例可以是根(也是任务中的唯一活动).
活动Y如何成为活动X上方任务的首位?
我还有其他原因吗?
PS:我也不太了解Task和后台堆栈之间的区别.
我正在运行 aJobIntentService以在后台执行任务。使用的原因JobIntentService是这样用户可以在操作发生时最小化屏幕,即使 Android 操作系统破坏了 ActivityJobIntentService仍将继续运行,如果用户回来,他可以更新结果。
但是我有一个案例,假设用户自己关闭了应用程序,然后我也想停止应用程序JobIntentService。
JobIntentService当用户自己关闭应用程序时,有什么方法可以通知。
任何帮助将不胜感激。
编辑:我尝试使用onTaskRemoved它是没有用的,因为我的测试设备不会调用它(我相信许多其他设备也不会调用它)。此外,当应用程序从最近的列表中删除时,该服务会自动停止,但在再次打开应用程序时再次重新启动,这是我不想要的。
我有一个动态注册BroadcastReceiver的Service.它得到AudioManager.RINGER_MODE_CHANGED_ACTION了IntentFilter.每次启动服务时,我都会在onReceive()方法中获取日志消息.之后它正常工作.每次启动服务时我都不希望它接收一次.你能告诉我我在这里失踪了吗?
receiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
Log.d("zil", "degisti");
}
};
IntentFilter filter=new IntentFilter(
AudioManager.RINGER_MODE_CHANGED_ACTION);
registerReceiver(receiver,filter);
Run Code Online (Sandbox Code Playgroud) android broadcastreceiver android-service android-audiomanager
在我试图找到如何在我的应用程序中启动新意图时,我遇到了几种方法来表达它.
此语法返回运行时错误,即ActivityNotFound异常
Intent in = new Intent("com.something.something");
Run Code Online (Sandbox Code Playgroud)
当然我的android清单包含intent过滤器中的一个动作:
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second" >
<intent-filter>
<action android:name="com.something.something" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这种格式有效:
Intent in = new Intent(MainActivity.this, SecondActivity.class);
Run Code Online (Sandbox Code Playgroud)
我也尝试过以下方法:
Intent in = new Intent(this, SomeActivity.class);
Run Code Online (Sandbox Code Playgroud)
这是我正在阅读的一本书中推荐的.这将返回运行时错误,activitynotfound
这个让Eclipse无限地在setClass和setClassName之间来回抛出:
Intent in = new Intent().setClass(this, SecondActivity.class);
Run Code Online (Sandbox Code Playgroud)
我在onclick方法中使用它:
ok.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent in = new Intent(MainActivity.this, SecondActivity.class);
startActivity(in);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这些和为什么只有其中一个为我工作有什么区别?
问候/ M.
您好,我正在尝试创建一个挂起的意图,其中包含一个枚举,该枚举包含在其意图附加中,该枚举通过警报管理器启动广播接收器,但是当我尝试获取枚举说它为空时,我的代码在广播接收器上崩溃了?
下面是我的代码
val calendar = Calendar.getInstance()
calendar.timeInMillis = System.currentTimeMillis()
val intent = Intent(context, ClearDataReceiver::class.java)
intent.action = "clear data"
intent.putExtra(ClearDataReceiver.DATA_TYPE_EXTRA, DataType.CUSTOMER_DETAILS )
val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, 60 * 1, pendingIntent)
Run Code Online (Sandbox Code Playgroud)
广播接收器
override fun onReceive(context: Context?, intent: Intent?) {
super.onReceive(context, intent)
var bundle = intent!!.extras
val dataType = bundle.getSerializable(DATA_TYPE_EXTRA) as DataType
when(dataType){
DataType.BALANCE -> storage.clearCurrentBalance()
DataType.CARD_NUMBER -> storage.clearardNumber()
DataType.CUSTOMER_DETAILS -> storage.clearUserDetails()
}
}
Run Code Online (Sandbox Code Playgroud) 我在不同的活动中响铃我的设备并在不同的活动中停止它。但问题是设备振铃在同一活动中开始和停止,但不会在不同的活动中停止。
代码是
Ringtone ringtone;
ringtone = RingtoneManager.getRingtone(mContext.getApplicationContext(),
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE));
AudioManager audioManager = (AudioManager) mContext.getApplicationContext().getSystemService(AUDIO_SERVICE);
int volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
ringtone.setStreamType(AudioManager.STREAM_ALARM);
ringtone.stop(); //ringing is not stoping
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以强行停止我的设备中的所有铃声..
我有一个服务,它是在启动完成事件时启动的,但是应用程序崩溃并显示上面的错误消息。请帮助我如何在 Boot_Completed 的广播接收器事件上启动我的服务。
我的服务.kt
class MyService : Service() {
override fun onCreate() {
Log.d(TAG, "onCreate")
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_STICKY
}
override fun onBind(intent: Intent?): IBinder? {
return null
}
override fun onDestroy() {
Log.d(TAG, "DO SOME STAFF")
}
}
Run Code Online (Sandbox Code Playgroud)
MyBroadCaster.kt
class StartRelayServiceAtBootReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (Intent.ACTION_BOOT_COMPLETED == intent.action) {
val serviceIntent = Intent(context, MyService::class.java)
context.startService(serviceIntent)
}
}
}
Run Code Online (Sandbox Code Playgroud) android ×10
alarmmanager ×2
kotlin ×2
android-task ×1
android-ui ×1
java ×1
launchmode ×1
syntax ×1