PhoneGap、iPhone、およびBig Bad IdletimerDisabled
-
26-10-2019 - |
質問
私のアプリを実行しながらiPhoneが眠るのを防ぐ方法について多くを読んでいます。
ここ 私は30秒ごとにタイマーを設定してiDletimerDisabledをnoに設定するというアイデアについて読みましたが、その後ははいですが、私のobjcはまだそれほど良くありません。誰かが私にどのように(そしてどこで)教えてもらえますか?
thnx!
編集:これが私が試したコードです:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
[ super applicationDidFinishLaunching:application ];
//application.idleTimerDisabled = NO;
//application.idleTimerDisabled = YES;
//[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
[UIApplication sharedApplication].idleTimerDisabled = NO;
[UIApplication sharedApplication].idleTimerDisabled = YES;
}
edit2:その後、次のループを開始しようとしました。
-(void)_timerLoop
{
// add this function up the top. it's what will happen when the
// timer goes off:
NSLog(@"Your timer went off!!!");
}
/**
* This is main kick off after the app inits, the views and Settings are setup here.
*/
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
[ super applicationDidFinishLaunching:application ];
//application.idleTimerDisabled = NO;
//application.idleTimerDisabled = YES;
//[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
//[UIApplication sharedApplication].idleTimerDisabled = NO;
//[UIApplication sharedApplication].idleTimerDisabled = YES;
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(_timerLoop) userInfo:nil repeats:YES];
}
edit3:偶然に偶然に変更することはできませんか? Stackoverflowシステムへの素晴らしいchnageリクエストになります!
解決
あなたの質問について タイマーの使用について:
これは、今から30秒でタイマーを(ちょうど一度)オフにする方法です。
-(void)_jump
{
// add this function up the top. it's what will happen when the
// timer goes off:
NSLog(@"Your timer went off!!!");
}
...
// here's how to create the timer, which will go off in 30 seconds
[NSTimer scheduledTimerWithTimeInterval:30.0
target:self selector:@selector(_jump) userInfo:nil repeats:NO]
お望みならば 2つの異なるタイマー, 、たとえば30秒と60秒後、同じ方法で2つを作成します。タイマーの助けが必要な場合はお知らせください!
簡単ではありません。この行を追加するだけです:
application.idleTimerDisabled = YES;
「アプリケーションDidfinishlaunchingWithoptions」ルーチン内。
あなたはあなたの中にそのルーチンを見つけるでしょう アプリデリゲート .mソースコードファイル。
必ず追加してください 前 「return yes;」ステートメント - よくある間違い!だから、まさにこのように:
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// blah blah ...
application.idleTimerDisabled = YES;
return YES;
}
他のヒント
uiapplication sharedapplication] .idletimerdisabled = yesを設定するだけです。の
- (bool)アプリケーション:( uiapplication*)アプリケーションdidfinishlaunchingwithoptions :( nsdictionary*)launchoptions
私にとってはうまくいきます。ただし、警告があります。電話ガップアプリからカメラユーティリティを呼び出してスナップショットを取るたびに、idletimerdisableが舞台裏に設定されないことに気付きました。そのため、画像をアップロードした直後に、次のコード行をもう一度呼び出しました。
uiapplication sharedapplication] .idletimerdisabled = yes;
また、アプリのアイドルタイマー全体にさらに多くの場所が再保証されても、私は驚かないでしょう。